# Copyright 2021 (c) Anna Schumaker. import db import sqlite3 import unittest from gi.repository import GObject class TestPlaylistStateTable(unittest.TestCase): def setUp(self): db.reset() def test_playlist_state_table_init(self): self.assertIsInstance(db.state.Table, db.state.PlaylistStateTable) db.execute("SELECT plstateid,random,loop,current,sort " "FROM playlist_states") def test_playlist_state_table_insert(self): state = db.state.Table.insert(False, False) self.assertFalse(state.random) self.assertFalse(state.loop) self.assertEqual(state.current, -1) self.assertEqual(state.sort, "") def test_playlist_state_table_delete(self): state = db.state.Table.insert(False, False) db.state.Table.delete(state) self.assertIsNone(db.state.Table.get(int(state))) def test_playlist_state_table_get(self): state = db.state.Table.insert(False, False) self.assertEqual(db.state.Table.get(int(state)), state) self.assertIsNone(db.year.Table.get(int(state) + 1)) def test_playlist_state_table_lookup(self): state = db.state.Table.insert(False, False) with self.assertRaises(NotImplementedError): db.state.Table.lookup() def test_playlist_state_properties(self): state = db.state.Table.insert(False, False) state.random = True self.assertTrue(state.random) state.loop = True self.assertTrue(state.loop) state.current = 3 self.assertEqual(state.current, 3) state.sort = "album:True;artist:False" self.assertEqual(state.sort, "album:True;artist:False")