class PlaylistTest(ModelTestCase): def setUp(self): self.playlist = Playlist(IdentityService.id_playlist(), "name", []) self.playlist.release_events() def test_construction(self): content = [IdentityService.id_video("")] playlist = Playlist(None, "name", content) self.assertEqual("name", playlist.name) self.assertEqual(content, playlist.ids) self.assertEqual(False, playlist.generated) self.expect_events(playlist, Evt.PlaylistCreated) def test_rename(self): self.playlist.name = "renamed" self.expect_events(self.playlist, Evt.PlaylistRenamed) def test_update_content(self): self.playlist.ids = [IdentityService.id_video("source")] self.expect_events(self.playlist, Evt.PlaylistContentUpdated) def test_remove(self): self.playlist.ids = [ IdentityService.id_video("source1"), IdentityService.id_video("source2"), ] self.playlist.release_events() self.playlist.remove(IdentityService.id_video("source1")) self.expect_events(self.playlist, Evt.PlaylistContentUpdated) def test_remove_unknown(self): video_id = IdentityService.id_video("source1") with self.assertRaises(DomainError) as ctx: self.playlist.remove(video_id) self.assertEqual( "video not in playlist", str(ctx.exception), ) def test_delete(self): self.playlist.delete() self.expect_events(self.playlist, Evt.PlaylistDeleted) def test_delete_generated(self): playlist = Playlist(None, "name", [], True) with self.assertRaises(DomainError) as ctx: playlist.delete() self.assertEqual("cannot delete generated playlists", str(ctx.exception))
def test_construction(self): content = [IdentityService.id_video("")] playlist = Playlist(None, "name", content) self.assertEqual("name", playlist.name) self.assertEqual(content, playlist.ids) self.assertEqual(False, playlist.generated) self.expect_events(playlist, Evt.PlaylistCreated)
def test_list_containing(self): playlists = [ Playlist( IdentityService.id_playlist(), "playlist_1", [ IdentityService.id_video("source1"), IdentityService.id_video("source2"), ], ), Playlist( IdentityService.id_playlist(), "playlist_2", [ IdentityService.id_video("source3"), IdentityService.id_video("source4"), ], ), Playlist( IdentityService.id_playlist(), "playlist_3", [ IdentityService.id_video("source1"), IdentityService.id_video("source3"), ], ), ] for playlist in playlists: self.repo.create(playlist) result = self.repo.list_containing(IdentityService.id_video("source1")) self.assertEqual([playlists[0], playlists[2]], result) result = self.repo.list_containing(IdentityService.id_video("source4")) self.assertEqual([playlists[1]], result) result = self.repo.list_containing(IdentityService.id_video("source5")) self.assertEqual([], result)
def impl(ctx): playlist = Playlist(cmd.model_id, cmd.name, cmd.ids, cmd.generated) ctx.add(playlist)
def setUp(self): self.playlist = Playlist(IdentityService.id_playlist(), "name", []) self.playlist.release_events()
def test_delete_generated(self): playlist = Playlist(None, "name", [], True) with self.assertRaises(DomainError) as ctx: playlist.delete() self.assertEqual("cannot delete generated playlists", str(ctx.exception))
def setUp(self): database = TinyDB(storage=MemoryStorage) self.repo = PlaylistRepo(database, RLock()) self.playlist_id = IdentityService.id_playlist() self.playlist = Playlist(self.playlist_id, "name")
def test_encode_playlist(self): playlist_id = IdentityService.id_playlist() playlist = Playlist(playlist_id, "title", [IdentityService.random()], generated=True) json.dumps(playlist, cls=ModelEncoder)