Update tests
This commit is contained in:
parent
189efb379f
commit
35438f59fb
@ -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,
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user