|
12 | 12 | class BaseTests: |
13 | 13 | NOTE_ON = [0x90, 48, 100] |
14 | 14 | NOTE_OFF = [0x80, 48, 16] |
| 15 | + SYSEX_IDENTITY_REQUEST = [0xF0, 0x7E, 0x7F, 6, 1, 0xF7] |
15 | 16 | IN_CLIENT_NAME = "RtMidiTestCase In" |
16 | 17 | OUT_CLIENT_NAME = "RtMidiTestCase Out" |
17 | 18 | IN_PORT_NAME = 'testin' |
@@ -67,10 +68,32 @@ def test_send_and_get_message(self): |
67 | 68 | self.midi_out.send_message(self.NOTE_ON) |
68 | 69 | self.midi_out.send_message(self.NOTE_OFF) |
69 | 70 | time.sleep(self.DELAY) |
70 | | - message_1, _ = self.midi_in.get_message() |
71 | | - message_2, _ = self.midi_in.get_message() |
72 | | - self.assertEqual(message_1, self.NOTE_ON) |
73 | | - self.assertEqual(message_2, self.NOTE_OFF) |
| 71 | + event_1 = self.midi_in.get_message() |
| 72 | + event_2 = self.midi_in.get_message() |
| 73 | + self.assertTrue(isinstance(event_1, tuple)) |
| 74 | + self.assertTrue(isinstance(event_2, tuple)) |
| 75 | + self.assertEqual(event_1[0], self.NOTE_ON) |
| 76 | + self.assertEqual(event_2[0], self.NOTE_OFF) |
| 77 | + |
| 78 | + def test_send_supports_iterator(self): |
| 79 | + self.set_up_loopback() |
| 80 | + self.midi_out.send_message(iter(self.NOTE_ON)) |
| 81 | + time.sleep(self.DELAY) |
| 82 | + event = self.midi_in.get_message() |
| 83 | + self.assertTrue(isinstance(event, tuple)) |
| 84 | + self.assertEqual(event[0], self.NOTE_ON) |
| 85 | + |
| 86 | + def test_send_raises_if_message_too_long(self): |
| 87 | + self.assertRaises(ValueError, self.midi_out.send_message, [1, 2, 3, 4]) |
| 88 | + |
| 89 | + def test_send_accepts_sysex(self): |
| 90 | + self.set_up_loopback() |
| 91 | + self.midi_in.ignore_types(sysex=False) |
| 92 | + self.midi_out.send_message(self.SYSEX_IDENTITY_REQUEST) |
| 93 | + time.sleep(self.DELAY) |
| 94 | + event = self.midi_in.get_message() |
| 95 | + self.assertTrue(isinstance(event, tuple)) |
| 96 | + self.assertEqual(event[0], self.SYSEX_IDENTITY_REQUEST) |
74 | 97 |
|
75 | 98 | def test_callback(self): |
76 | 99 | messages = [] |
|
0 commit comments