musicmuster/test_models.py
2022-03-02 09:11:10 +00:00

157 lines
3.9 KiB
Python

from app.models import (
NoteColours,
Notes,
Playdates,
Playlists,
# PlaylistTracks,
Tracks,
)
def test_notecolours_get_colour(session):
"""Create a colour record and retrieve all colours"""
rec = NoteColours()
rec.colour = "ffffff"
rec.substring = "substring"
rec.is_regex = False
rec.is_casesensitive = True
session.add(rec)
session.commit()
records = NoteColours.get_all(session)
assert len(records) == 1
record = records[0]
assert record.colour == "ffffff"
def test_notecolours_get_by_id(session):
"""Create a colour record and retrieve it by id"""
rec = NoteColours()
rec.colour = "abcdef"
rec.substring = "substring"
rec.is_regex = False
rec.is_casesensitive = True
session.add(rec)
session.commit()
record_id = rec.id
record = NoteColours.get_by_id(session, record_id)
assert record.colour == "abcdef"
def test_notes_add_note(session):
"""Add and retrieve a note"""
# We need to have a playlist to add the note to
pl = Playlists()
pl.name = "Test playlist"
session.add(pl)
session.commit()
note_text = "Here we are"
Notes.add_note(session, pl.id, 1, note_text)
# We retrieve notes via playlist
playlist = Playlists.get_playlist_by_id(session, pl.id)
notes = playlist.get_notes()
assert len(notes) == 1
assert notes[0] == note_text
def test_notes_delete_note(session):
"""Add and delete a note"""
# We need to have a playlist to add the note to
pl = Playlists()
pl.name = "Test playlist"
session.add(pl)
session.commit()
note_text = "Here we are"
rec =Notes.add_note(session, pl.id, 1, note_text)
Notes.delete_note(session, rec.id)
# We retrieve notes via playlist
playlist = Playlists.get_playlist_by_id(session, pl.id)
notes = playlist.get_notes()
assert len(notes) == 0
def test_notes_update_note(session):
"""Add and update a note"""
# We need to have a playlist to add the note to
pl = Playlists()
pl.name = "Test playlist"
session.add(pl)
session.commit()
original_text = "Here we are"
replacement_text = "There we go"
rec = Notes.add_note(session, pl.id, 1, original_text)
Notes.update_note(session, rec.id, 1, text=replacement_text)
# We retrieve notes via playlist
playlist = Playlists.get_playlist_by_id(session, pl.id)
notes = playlist.get_notes()
assert len(notes) == 1
assert notes[0] == replacement_text
def test_playdates_add_playdate(session):
"""Test playdate and last_played retrieval"""
# We need a track
track_path = "/a/b/c"
track = Tracks.get_or_create(session, track_path)
# Need to commit because track record is updated in Playdates.add_playdate()
session.commit()
playdate = Playdates.add_playdate(session, track)
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.get_or_create(session, track_path)
# Need to commit because track record is updated in Playdates.add_playdate()
session.commit()
playdate = Playdates.add_playdate(session, track)
Playdates.remove_track(session, track.id)
last_played = Playdates.last_played(session, track.id)
assert last_played is None
def test_playlist_add_track(session):
"""Test adding track to playlist"""
# We need a track
track_path = "/a/b/c"
track = Tracks.get_or_create(session, track_path)
# Need to commit because track record is updated in Playdates.add_playdate()
session.commit()
playlist = Playlists()
playlist.name = "Test playlist"
session.add(playlist)
session.commit()
playlist.add_track(session, track)
tracks = playlist.get_tracks()
assert len(tracks) == 1
assert tracks[0].path == track_path