|
| 1 | +# SPDX-FileCopyrightText: Copyright (c) 2024 Tod Kurt |
| 2 | +# SPDX-License-Identifier: MIT |
| 3 | + |
| 4 | + |
| 5 | +import tmidi |
| 6 | + |
| 7 | + |
| 8 | +class PortStub: |
| 9 | + def __init__(self, data): |
| 10 | + self.data = data |
| 11 | + self.expected = None |
| 12 | + |
| 13 | + def write(self, buf, nbytes): |
| 14 | + assert self.expected == list(buf) |
| 15 | + |
| 16 | + |
| 17 | +def test_message_note_on(): |
| 18 | + msg = tmidi.Message(tmidi.NOTE_ON, 64, 123) |
| 19 | + assert str(msg) == "Message(NoteOn ch:0 64 123)" |
| 20 | + |
| 21 | + |
| 22 | +def test_message_program_change(): |
| 23 | + msg = tmidi.Message(tmidi.PROGRAM_CHANGE, 120, channel=11) |
| 24 | + assert str(msg) == "Message(ProgramChange ch:11 120)" |
| 25 | + |
| 26 | + |
| 27 | +def test_message_note_on_send(): |
| 28 | + port = PortStub(iter([])) |
| 29 | + midi_out = tmidi.MIDI(midi_out=port) |
| 30 | + |
| 31 | + msg = tmidi.Message(tmidi.NOTE_ON, 64, 123) |
| 32 | + port.expected = [0x90, 64, 123] |
| 33 | + midi_out.send(msg) |
| 34 | + |
| 35 | + msg = tmidi.Message(tmidi.NOTE_ON, 32, 111, channel=3) |
| 36 | + port.expected = [0x93, 32, 111] |
| 37 | + midi_out.send(msg) |
| 38 | + |
| 39 | + |
| 40 | +def test_message_program_change_send(): |
| 41 | + port = PortStub(iter([])) |
| 42 | + midi_out = tmidi.MIDI(midi_out=port) |
| 43 | + |
| 44 | + msg = tmidi.Message(tmidi.PROGRAM_CHANGE, 33) |
| 45 | + port.expected = [0xC0, 33] |
| 46 | + midi_out.send(msg) |
0 commit comments