emmental/playlist/test_column.py

117 lines
3.7 KiB
Python
Raw Normal View History

# Copyright 2021 (c) Anna Schumaker.
import db
import lib
import unittest
from gi.repository import Gtk
from lib import settings
from . import column
class FakeListItem:
def __init__(self): self.child = None
def get_item(self): return None
def get_child(self): return self.child
def set_child(self, child): self.child = child
class TestLabelFactory(unittest.TestCase):
def test_init(self):
factory = column.LabelFactory(0.5)
self.assertIsInstance(factory, Gtk.SignalListItemFactory)
self.assertEqual(factory.xalign, 0.5)
def test_setup_teardown(self):
fake = FakeListItem()
factory = column.LabelFactory(0.5)
factory.on_setup(factory, fake)
self.assertIsInstance(fake.child, Gtk.Label)
self.assertEqual(fake.child.get_xalign(), 0.5)
factory.on_teardown(factory, fake)
self.assertIsNone(fake.child)
def test_bind_unbind(self):
fake = FakeListItem()
factory = column.LabelFactory(0.5)
factory.on_setup(factory, fake)
with self.assertRaises(NotImplementedError):
factory.on_bind(factory, fake)
fake.child.set_text("abcde")
factory.on_unbind(factory, fake)
self.assertEqual(fake.child.get_text(), "")
class TestColumnFactories(unittest.TestCase):
def setUp(self):
db.reset()
self.track = db.make_fake_track(1, 1, "Test Track", "/a/b/c/1.ogg")
def test_trackno(self):
factory = column.TracknoFactory()
self.assertIsInstance(factory, column.LabelFactory)
self.assertEqual(factory.get_track_text(self.track), "1-01")
self.assertEqual(factory.xalign, 1)
class TestColumn(unittest.TestCase):
def test_init(self):
factory = column.LabelFactory(0.5)
col = column.Column("Test", factory)
self.assertIsInstance(col, Gtk.ColumnViewColumn)
self.assertEqual(col.get_title(), "Test")
self.assertEqual(col.get_factory(), factory)
self.assertFalse(col.get_expand())
self.assertTrue(col.get_resizable())
col = column.Column("Test2", factory, expand=True)
self.assertTrue(col.get_expand())
def test_width(self):
factory = column.LabelFactory(0.5)
col = column.Column("Test", factory, width=-1)
self.assertEqual(lib.settings.get_int("column.Test"), -1)
col.set_fixed_width(200)
self.assertEqual(lib.settings.get_int("column.Test"), 200)
col2 = column.Column("Test", factory, width=-1)
self.assertEqual(col2.get_fixed_width(), 200)
class TestColumns(unittest.TestCase):
def test_trackno(self):
col = column.TracknoColumn()
self.assertIsInstance(col, column.Column)
self.assertIsInstance(col.get_factory(), column.TracknoFactory)
self.assertEqual(col.get_title(), "#")
class TestPlaylistColumn(unittest.TestCase):
def tearDown(self):
settings.reset()
def test_playlist_column_init(self):
col = column.OldColumn("Test", "test")
self.assertIsInstance(col, Gtk.ColumnViewColumn)
self.assertIsInstance(col.factory, Gtk.SignalListItemFactory)
self.assertEqual(col.get_title(), "Test")
self.assertEqual(col.field, "test")
self.assertEqual(col.align, 0)
self.assertEqual(col.get_factory(), col.factory)
self.assertTrue(col.get_resizable())
self.assertFalse(col.get_expand())
col = column.OldColumn("Test2", "test", expand=True)
self.assertTrue(col.get_expand())
def test_playlist_column_width(self):
col = column.OldColumn("Test", "test", width=100)
self.assertEqual(settings.get_int("column.Test"), 100)
col.set_fixed_width(200)
self.assertEqual(settings.get_int("column.Test"), 200)