# Copyright 2021 (c) Anna Schumaker. import db import sqlite3 import unittest from gi.repository import GObject class TestDiscTable(unittest.TestCase): def setUp(self): db.reset() def test_disc_table_init(self): self.assertIsInstance(db.disc.Table, db.disc.DiscTable) db.execute("SELECT discid,albumid,number,subtitle FROM discs") def test_disc_table_insert(self): artist = db.artist.Table.insert("Test Artist", "Test Sort") album = db.album.Table.insert(artist, "Test Album") disc = db.disc.Table.insert(album, 1, "subtitle") self.assertIsInstance(disc, db.disc.Disc) self.assertIsInstance(disc, db.objects.Row) self.assertEqual(disc.album, album) self.assertEqual(disc.number, 1) self.assertEqual(disc.subtitle, "subtitle") self.assertEqual(str(disc), "Test Album: subtitle") disc2 = db.disc.Table.insert(album, 2, None) self.assertEqual(disc2.subtitle, None) self.assertEqual(str(disc2), "Test Album") disc3 = db.disc.Table.insert(album, 3, "") self.assertEqual(disc3.subtitle, None) self.assertEqual(str(disc3), "Test Album") with self.assertRaises(sqlite3.IntegrityError): db.disc.Table.insert(album, 1, "subtitle") def test_disc_table_delete(self): artist = db.artist.Table.find("Test Artist", "Test Sort") album = db.album.Table.find(artist, "Test Album") disc = db.disc.Table.find(album, 1, "subtitle") db.disc.Table.delete(disc) self.assertIsNone(db.disc.Table.lookup(album, 1)) def test_disc_table_get(self): artist = db.artist.Table.insert("Test Artist", "Test Sort") album = db.album.Table.insert(artist, "Test Album") disc = db.disc.Table.insert(album, 1, None) self.assertEqual(db.disc.Table.get(1), disc) self.assertIsNone(db.disc.Table.get(2)) def test_disc_table_lookup(self): artist = db.artist.Table.insert("Test Artist", "Test Sort") album = db.album.Table.insert(artist, "Test Album") disc = db.disc.Table.insert(album, 1, None) self.assertEqual(db.disc.Table.lookup(album, 1), disc) self.assertIsNone(db.disc.Table.lookup(album, "none")) def test_disc_compare(self): artist = db.artist.Table.insert("Test Artist", "Test Sort") album = db.album.Table.insert(artist, "Test Album") disc1 = db.disc.Table.insert(album, 1, "subtitle") disc2 = db.disc.Table.insert(album, 2, "subtitle") self.assertTrue(disc1 < disc2) self.assertTrue(disc2 > disc1) self.assertFalse(disc1 > disc2) self.assertFalse(disc2 < disc1)