def test_no_default_immediately_start(self): songs = ["1", "2", "3"] p1 = oracles.PlaylistOracle(songs) o = oracles.InterruptOracle(None) o.interrupt(p1) collected = collect(o) self.assertListEqual(collected, songs)
def __init__(self, media_library: Optional[MediaLibrary] = None): if not media_library: media_library = MediaLibrary() self.media_library = media_library self.vlc_player = Player() self.devices = AudioDevices( vlc.libvlc_audio_output_device_enum(self.vlc_player.mp)) self.switch_oracle = oracles.SwitchOracle() self.queueing_oracle = oracles.ChainOracle() self.interrupt_oracle = oracles.InterruptOracle(self.switch_oracle) self.switch_oracle.set_oracle(self.queueing_oracle) self.vlc_player.play_oracle(self.interrupt_oracle)
def test_interrupt_after_finish(self): songs1 = ["1", "2", "3"] p1 = oracles.PlaylistOracle(songs1) songs2 = ["4", "5", "6"] p2 = oracles.PlaylistOracle(songs2) o = oracles.InterruptOracle(p1) collected = collect(o) o.interrupt(p2) collected.extend(collect(p2)) self.assertListEqual(collected, songs1 + songs2)
def test_interrupt_before_finish(self): songs1 = ["1", "2", "3"] p1 = oracles.PlaylistOracle(songs1) songs2 = ["4", "5", "6"] p2 = oracles.PlaylistOracle(songs2) o = oracles.InterruptOracle(p1) collected = [o.current_song(), o.next_song()] o.interrupt(p2) collected.extend(collect(o)) self.assertListEqual(collected, ["1", "2", "2", "4", "5", "6", "3"])
def test_no_default(self): songs = ["1", "2", "3"] p1 = oracles.PlaylistOracle(songs) o = oracles.InterruptOracle(None) collected = [o.current_song()] o.interrupt(p1) collected.extend(collect(o)) # Two "None"s, one from the initial "current_song", one from the "current_song" in collect() expected = list([None, None]) expected.extend(songs) self.assertListEqual(collected, expected)
def test_default_behavior(self): songs = ["1", "2", "3"] p1 = oracles.PlaylistOracle(songs) o = oracles.InterruptOracle(p1) self.assertListEqual(collect(o), songs)