import time from app.models import ( NoteColours, Notes, Playdates, Playlists, Tracks, ) def test_notecolours_get_colour(session): """Create a colour record and retrieve all colours""" note_colour = "#abcdef" NoteColours(session, substring="substring", colour=note_colour) records = NoteColours.get_all(session) assert len(records) == 1 record = records[0] assert record.colour == note_colour def test_notecolours_get_all(session): """Create two colour records and retrieve them all""" note1_colour = "#abcdef" note2_colour = "#00ff00" NoteColours(session, substring="note1", colour=note1_colour) NoteColours(session, substring="note2", colour=note2_colour) records = NoteColours.get_all(session) assert len(records) == 2 assert note1_colour in [n.colour for n in records] assert note2_colour in [n.colour for n in records] def test_notecolours_get_colour_none(session): note_colour = "#abcdef" NoteColours(session, substring="substring", colour=note_colour) result = NoteColours.get_colour(session, "xyz") assert result is None def test_notecolours_get_colour_match(session): note_colour = "#abcdef" nc = NoteColours(session, substring="sub", colour=note_colour) assert nc result = NoteColours.get_colour(session, "The substring") assert result == note_colour def test_notes_creation(session): # We need a playlist playlist = Playlists(session, "my playlist") note_text = "note text" note = Notes(session, playlist.id, 0, note_text) assert note notes = session.query(Notes).all() assert len(notes) == 1 assert notes[0].note == note_text def test_notes_delete(session): # We need a playlist playlist = Playlists(session, "my playlist") note_text = "note text" note = Notes(session, playlist.id, 0, note_text) assert note notes = session.query(Notes).all() assert len(notes) == 1 assert notes[0].note == note_text note.delete_note(session) notes = session.query(Notes).all() assert len(notes) == 0 def test_notes_update_row_only(session): # We need a playlist playlist = Playlists(session, "my playlist") note_text = "note text" note = Notes(session, playlist.id, 0, note_text) new_row = 10 note.update_note(session, new_row) notes = session.query(Notes).all() assert len(notes) == 1 assert notes[0].row == new_row def test_notes_update_text(session): # We need a playlist playlist = Playlists(session, "my playlist") note_text = "note text" note = Notes(session, playlist.id, 0, note_text) new_text = "This is new" new_row = 0 note.update_note(session, new_row, new_text) notes = session.query(Notes).all() assert len(notes) == 1 assert notes[0].note == new_text assert notes[0].row == new_row def test_playdates_add_playdate(session): """Test playdate and last_played retrieval""" # We need a track track_path = "/a/b/c" track = Tracks(session, track_path) playdate = Playdates(session, track) assert playdate last_played = Playdates.last_played(session, track.id) assert playdate.lastplayed == last_played def test_playdates_remove_track(session): """Test removing a track from a playdate""" # We need a track track_path = "/a/b/c" track = Tracks(session, track_path) playdate = Playdates(session, track) Playdates.remove_track(session, track.id) last_played = Playdates.last_played(session, track.id) assert last_played is None def test_playlist_create(session): playlist = Playlists(session, "my playlist") assert playlist def test_playlist_add_note(session): note_text = "my note" note_row = 2 playlist = Playlists(session, "my playlist") note = playlist.add_note(session, note_row, note_text) assert len(playlist.notes) == 1 playlist_note = playlist.notes[0] assert playlist_note.note == note_text def test_playlist_add_track(session): # We need a playlist playlist = Playlists(session, "my playlist") # We need a track track_path = "/a/b/c" track = Tracks(session, track_path) playlist.add_track(session, track) assert len(playlist.tracks) == 1 print(playlist.tracks) playlist_track = playlist.tracks[0] assert playlist_track.path == track_path