Update tests

This commit is contained in:
Keith Edmunds 2024-04-27 20:36:04 +01:00
parent 189efb379f
commit 35438f59fb
2 changed files with 69 additions and 64 deletions

View File

@ -1,13 +1,11 @@
# Standard library imports
import os
import sys
from typing import List, Optional
import datetime as dt
# PyQt imports
# Third party imports
from alchemical import Alchemical, Model # type: ignore
from alchemical import Model # type: ignore
from sqlalchemy import (
Boolean,
DateTime,

View File

@ -18,6 +18,7 @@ DB_FILE = "/tmp/mm.db"
if os.path.exists(DB_FILE):
os.unlink(DB_FILE)
os.environ["ALCHEMICAL_DATABASE_URI"] = "sqlite:///" + DB_FILE
from app import playlistmodel, utilities
from app.models import ( # noqa: E402
db,
Carts,
@ -59,7 +60,41 @@ class MyTestCase(unittest.TestCase):
def up(self):
db.create_all()
self.widget = musicmuster.Window()
self.widget.show()
# self.widget.show()
# Add two tracks to database
self.tracks = {
1: {
"path": "testdata/isa.mp3",
"title": "I'm so afraid",
"artist": "Fleetwood Mac",
"bitrate": 64,
"duration": 263000,
"start_gap": 60,
"fade_at": 236263,
"silence_at": 260343,
"mtime": 371900000,
},
2: {
"path": "testdata/mom.mp3",
"title": "Man of Mystery",
"artist": "The Shadows",
"bitrate": 64,
"duration": 120000,
"start_gap": 70,
"fade_at": 115000,
"silence_at": 118000,
"mtime": 1642760000,
},
}
with db.Session() as session:
for track in self.tracks.values():
db_track = Tracks(session=session, **track)
session.add(db_track)
track['id'] = db_track.id
session.commit()
def down(self):
db.drop_all()
@ -68,80 +103,52 @@ class MyTestCase(unittest.TestCase):
def test_init(self):
"""Just check we can create a playlist_tab"""
with db.Session() as session:
playlist = Playlists(session, "test playlist")
# playlist_tab = playlists.PlaylistTab(self.widget, playlist.id)
playlist_name = "test_init playlist"
with db.Session() as session:
playlist = Playlists(session, playlist_name)
self.widget.create_playlist_tab(playlist)
with self.qtbot.waitExposed(self.widget):
# window.show()
# with self.qtbot.waitSignal(self.widget.my_signal, timeout=300):
# with qtbot.waitExposed(window):
self.widget.show()
@with_updown
def test_save_and_restore(self):
"""Playlist with one track, one note, save and restore"""
# def seed2tracks(session):
# tracks = [
# {
# "path": "testdata/isa.mp3",
# "title": "I'm so afraid",
# "artist": "Fleetwood Mac",
# "duration": 263000,
# "start_gap": 60,
# "fade_at": 236263,
# "silence_at": 260343,
# "mtime": 371900000,
# },
# {
# "path": "testdata/mom.mp3",
# "title": "Man of Mystery",
# "artist": "The Shadows",
# "duration": 120000,
# "start_gap": 70,
# "fade_at": 115000,
# "silence_at": 118000,
# "mtime": 1642760000,
# },
# ]
note_text = "my note"
playlist_name = "test_save_and_restore playlist"
# for track in tracks:
# db_track = models.Tracks(session=session, **track)
# session.add(db_track)
with db.Session() as session:
playlist = Playlists(session, playlist_name)
model = playlistmodel.PlaylistModel(playlist.id)
# session.commit()
# Add a track with a note
model.insert_row(proposed_row_number=0, track_id=self.tracks[1]['id'], note=note_text)
# We need to commit the session before re-querying
session.commit()
# def test_save_and_restore(qtbot, session):
# """Playlist with one track, one note, save and restore"""
# Retrieve playlist
all_playlists = Playlists.get_all(session)
assert len(all_playlists) == 1
retrieved_playlist = all_playlists[0]
assert len(retrieved_playlist.rows) == 1
paths = [a.track.path for a in retrieved_playlist.rows]
assert self.tracks[1]['path'] in paths
notes = [a.note for a in retrieved_playlist.rows]
assert note_text in notes
# # Create playlist
# playlist = models.Playlists(session, "my playlist")
# playlist_tab = playlists.PlaylistTab(None, session, playlist.id)
@with_updown
def test_utilities(self):
"""Test check_db utility"""
# # Insert a note
# note_text = "my note"
# note_row = 7
# note = models.Notes(session, playlist.id, note_row, note_text)
# playlist_tab._insert_note(session, note)
from config import Config
# # Add a track
# track_path = "/a/b/c"
# track = models.Tracks(session, track_path)
# # Inserting the track will also save the playlist
# playlist_tab.insert_track(session, track)
# # We need to commit the session before re-querying
# session.commit()
# # Retrieve playlist
# all_playlists = playlists.Playlists.get_open(session)
# assert len(all_playlists) == 1
# retrieved_playlist = all_playlists[0]
# paths = [a.path for a in retrieved_playlist.tracks.values()]
# assert track_path in paths
# notes = [a.note for a in retrieved_playlist.notes]
# assert note_text in notes
Config.ROOT = os.path.join(os.path.dirname(__file__), 'testdata')
with db.Session() as session:
utilities.check_db(session)
utilities.update_bitrates(session)
# def test_meta_all_clear(qtbot, session):
# # Create playlist