def test_process_step_only_starts_current_note_when_previous_note_is_empty( self, mock_send_message, mock_get_previous_step): mock_get_previous_step.return_value = Note(None, is_hold=False) sequencer = Sequencer(0, 1, 4, 4) sequencer.set_midi_channel(0) sequencer.process_step(Note(1, is_hold=False)) self.assertEquals(mock_send_message.call_count, 1) self.assertEquals(mock_send_message.call_args[0], ('NoteOn', 0, 1))
def test_process_steps_stops_previous_note_when_previous_note_is_hold_and_current_note_is_empty( self, mock_send_message, mock_get_previous_step): mock_get_previous_step.return_value = Note(99, is_hold=True) sequencer = Sequencer(0, 1, 4, 4) sequencer.set_midi_channel(0) sequencer.process_step(Note(None, is_hold=False)) self.assertEquals(mock_send_message.call_count, 1) self.assertEquals(mock_send_message.call_args_list[0][0], ('NoteOff', 0, 99))