187 lines
4.9 KiB
Python
187 lines
4.9 KiB
Python
import os.path
|
|
|
|
import helpers
|
|
|
|
from app.models import (
|
|
NoteColours,
|
|
Playdates,
|
|
Playlists,
|
|
Tracks,
|
|
)
|
|
|
|
|
|
def test_notecolours_get_colour(session):
|
|
"""Create a colour record and retrieve all colours"""
|
|
|
|
print(">>>text_notcolours_get_colour")
|
|
note_colour = "#0bcdef"
|
|
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"""
|
|
|
|
print(">>>text_notcolours_get_all")
|
|
note1_colour = "#1bcdef"
|
|
note2_colour = "#20ff00"
|
|
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 = "#3bcdef"
|
|
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 = "#4bcdef"
|
|
nc = NoteColours(session, substring="sub", colour=note_colour)
|
|
assert nc
|
|
|
|
result = NoteColours.get_colour(session, "The substring")
|
|
assert result == note_colour
|
|
|
|
|
|
def test_playdates_add_playdate(session, track1):
|
|
"""Test playdate and last_played retrieval"""
|
|
|
|
playdate = Playdates(session, track1.id)
|
|
assert playdate
|
|
|
|
last_played = Playdates.last_played(session, track1.id)
|
|
assert abs((playdate.lastplayed - last_played).total_seconds()) < 2
|
|
|
|
|
|
def test_playlist_create(session):
|
|
playlist = Playlists(session, "my playlist")
|
|
assert playlist
|
|
|
|
|
|
# def test_playlist_add_track(session, track):
|
|
# # We need a playlist
|
|
# playlist = Playlists(session, "my playlist")
|
|
|
|
# row = 17
|
|
|
|
# playlist.add_track(session, track.id, row)
|
|
|
|
# assert len(playlist.tracks) == 1
|
|
# playlist_track = playlist.tracks[row]
|
|
# assert playlist_track.path == track_path
|
|
|
|
|
|
# def test_playlist_tracks(session):
|
|
# # We need a playlist
|
|
# playlist = Playlists(session, "my playlist")
|
|
|
|
# # We need two tracks
|
|
# track1_path = "/a/b/c"
|
|
# track1_row = 17
|
|
# track1 = Tracks(session, track1_path)
|
|
|
|
# track2_path = "/x/y/z"
|
|
# track2_row = 29
|
|
# track2 = Tracks(session, track2_path)
|
|
|
|
# playlist.add_track(session, track1.id, track1_row)
|
|
# playlist.add_track(session, track2.id, track2_row)
|
|
|
|
# tracks = playlist.tracks
|
|
# assert tracks[track1_row] == track1
|
|
# assert tracks[track2_row] == track2
|
|
|
|
|
|
# def test_playlist_notes(session):
|
|
# # We need a playlist
|
|
# playlist = Playlists(session, "my playlist")
|
|
|
|
# # We need two notes
|
|
# note1_text = "note1 text"
|
|
# note1_row = 11
|
|
# _ = Notes(session, playlist.id, note1_row, note1_text)
|
|
|
|
# note2_text = "note2 text"
|
|
# note2_row = 19
|
|
# _ = Notes(session, playlist.id, note2_row, note2_text)
|
|
|
|
# notes = playlist.notes
|
|
# assert note1_text in [n.note for n in notes]
|
|
# assert note1_row in [n.row for n in notes]
|
|
# assert note2_text in [n.note for n in notes]
|
|
# assert note2_row in [n.row for n in notes]
|
|
|
|
|
|
def test_playlist_open_and_close(session):
|
|
# We need a playlist
|
|
playlist = Playlists(session, "my playlist")
|
|
|
|
assert len(Playlists.get_open(session)) == 0
|
|
assert len(Playlists.get_closed(session)) == 1
|
|
|
|
playlist.mark_open(session, tab_index=0)
|
|
|
|
assert len(Playlists.get_open(session)) == 1
|
|
assert len(Playlists.get_closed(session)) == 0
|
|
|
|
playlist.close(session)
|
|
|
|
assert len(Playlists.get_open(session)) == 0
|
|
assert len(Playlists.get_closed(session)) == 1
|
|
|
|
|
|
def test_playlist_get_all_and_by_id(session):
|
|
# We need two playlists
|
|
p1_name = "playlist one"
|
|
p2_name = "playlist two"
|
|
playlist1 = Playlists(session, p1_name)
|
|
_ = Playlists(session, p2_name)
|
|
|
|
all_playlists = Playlists.get_all(session)
|
|
assert len(all_playlists) == 2
|
|
assert p1_name in [p.name for p in all_playlists]
|
|
assert p2_name in [p.name for p in all_playlists]
|
|
assert session.get(Playlists, playlist1.id).name == p1_name
|
|
|
|
|
|
def test_tracks_get_all_tracks(session, track1, track2):
|
|
# Need two tracks
|
|
|
|
result = [a.path for a in Tracks.get_all(session)]
|
|
assert track1.path in result
|
|
assert track2.path in result
|
|
|
|
|
|
def test_tracks_by_path(session, track1):
|
|
|
|
assert Tracks.get_by_path(session, track1.path) is track1
|
|
|
|
|
|
def test_tracks_by_id(session, track1):
|
|
|
|
assert session.get(Tracks, track1.id) is track1
|
|
|
|
|
|
def test_tracks_search_artists(session, track1):
|
|
track1_artist = "Fleetwood Mac"
|
|
|
|
assert len(Tracks.search_artists(session, track1_artist)) == 1
|
|
|
|
|
|
def test_tracks_search_titles(session, track1):
|
|
track1_title = "I'm So Afraid"
|
|
|
|
assert len(Tracks.search_titles(session, track1_title)) == 1
|