179 lines
4.3 KiB
Python
179 lines
4.3 KiB
Python
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
|