db: Add a Tag object
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
2f8e71fff7
commit
3753b0ad60
|
@ -13,6 +13,21 @@ class Row(GObject.GObject):
|
|||
|
||||
def do_get_column(self, column): raise NotImplementedError
|
||||
|
||||
def get_column(self, column):
|
||||
return self.do_get_column(column).fetchone()[column]
|
||||
|
||||
|
||||
class Tag(Row):
|
||||
def __gt__(self, rhs): return self.sort > rhs.sort
|
||||
def __lt__(self, rhs): return self.sort < rhs.sort
|
||||
def __str__(self): return self.name
|
||||
|
||||
@GObject.Property
|
||||
def name(self): return self.get_column("name")
|
||||
|
||||
@GObject.Property
|
||||
def sort(self): return self.get_column("sort")
|
||||
|
||||
|
||||
class Table(GObject.GObject):
|
||||
def __init__(self, name, type):
|
||||
|
|
|
@ -22,6 +22,42 @@ class TestRow(unittest.TestCase):
|
|||
row.do_get_column("test")
|
||||
|
||||
|
||||
class FakeTagCursor:
|
||||
def __init__(self, col, text):
|
||||
self.col = col
|
||||
self.text = text
|
||||
def fetchone(self): return { self.col : self.text }
|
||||
|
||||
class FakeTag(objects.Tag):
|
||||
def __init__(self, tid, name, sort):
|
||||
objects.Tag.__init__(self, tid)
|
||||
self.fake_name = name
|
||||
self.fake_sort = sort
|
||||
|
||||
def do_get_column(self, column):
|
||||
if column == "name":
|
||||
return FakeTagCursor(column, self.fake_name)
|
||||
return FakeTagCursor(column, self.fake_sort)
|
||||
|
||||
class TestTag(unittest.TestCase):
|
||||
def test_tag(self):
|
||||
a = FakeTag(1, "A", "a")
|
||||
b = FakeTag(1, "B", "b")
|
||||
|
||||
self.assertIsInstance(a, objects.Tag)
|
||||
self.assertEqual(a.name, "A")
|
||||
self.assertEqual(a.sort, "a")
|
||||
self.assertEqual(str(a), "A")
|
||||
|
||||
self.assertEqual(a.get_property("name"), "A")
|
||||
self.assertEqual(a.get_property("sort"), "a")
|
||||
|
||||
self.assertTrue(a < b)
|
||||
self.assertTrue(b > a)
|
||||
|
||||
self.assertFalse(a > b)
|
||||
self.assertFalse(b < a)
|
||||
|
||||
class FakeTable(objects.Table):
|
||||
def do_create(self): self.create_called = True
|
||||
def do_insert(self, insert, args): return FakeCursor(1)
|
||||
|
|
Loading…
Reference in New Issue