lib: Create a fake module for FakeTracks
And anything else that needs it. This lets us define all the fields expected by other parts of the Emmental system without needed to read a track file. I also switch over the test_tag.py and test_tagstore.py files while I'm at it. Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
c3cb3b9847
commit
3f0fce8c53
|
@ -0,0 +1,14 @@
|
|||
# Copyright 2021 (c) Anna Schumaker.
|
||||
|
||||
tracks = { }
|
||||
|
||||
class FakeTrack:
|
||||
def __init__(self, n):
|
||||
self.trackid = n
|
||||
|
||||
def __int__(self):
|
||||
return self.trackid
|
||||
|
||||
|
||||
def Track(n):
|
||||
return tracks.setdefault(n, FakeTrack(n))
|
|
@ -1,14 +1,11 @@
|
|||
# Copyright 2021 (c) Anna Schumaker.
|
||||
from . import publisher
|
||||
from . import tag
|
||||
from . import fake
|
||||
import random
|
||||
import threading
|
||||
import unittest
|
||||
|
||||
class FakeTrack:
|
||||
def __init__(self, trackid):
|
||||
self.trackid = trackid
|
||||
|
||||
|
||||
class TestTag(unittest.TestCase):
|
||||
def setUp(self):
|
||||
|
@ -37,7 +34,7 @@ class TestTag(unittest.TestCase):
|
|||
def test_tag_len(self):
|
||||
t = tag.Tag("Test")
|
||||
self.assertEqual(len(t), 0)
|
||||
t.tracks = [ FakeTrack(i) for i in range(5) ]
|
||||
t.tracks = [ fake.Track(i) for i in range(5) ]
|
||||
self.assertEqual(len(t), 5)
|
||||
|
||||
def test_tag_lt(self):
|
||||
|
@ -61,7 +58,7 @@ class TestTag(unittest.TestCase):
|
|||
|
||||
def test_tag_state(self):
|
||||
t = tag.Tag("test")
|
||||
tracks = [ FakeTrack(i) for i in range(5) ]
|
||||
tracks = [ fake.Track(i) for i in range(5) ]
|
||||
t.tracks = tracks
|
||||
|
||||
state = t.__getstate__()
|
||||
|
@ -98,13 +95,13 @@ class TestTag(unittest.TestCase):
|
|||
t = tag.Tag("test")
|
||||
t.TrackAdded.register(self.callback_func)
|
||||
|
||||
t.add_track(1)
|
||||
self.assertEqual(t.tracks, [ 1 ])
|
||||
self.assertEqual(self.changed, (t, 1, 0))
|
||||
t.add_track(fake.Track(1))
|
||||
self.assertEqual(t.tracks, [ fake.Track(1) ])
|
||||
self.assertEqual(self.changed, (t, fake.Track(1), 0))
|
||||
|
||||
t.add_track(2)
|
||||
self.assertEqual(t.tracks, [ 1, 2 ])
|
||||
self.assertEqual(self.changed, (t, 2, 1))
|
||||
t.add_track(fake.Track(2))
|
||||
self.assertEqual(t.tracks, [ fake.Track(1), fake.Track(2) ])
|
||||
self.assertEqual(self.changed, (t, fake.Track(2), 1))
|
||||
|
||||
def test_tag_remove_track(self):
|
||||
t = tag.Tag("test")
|
||||
|
@ -184,7 +181,7 @@ class TestSuperTag(unittest.TestCase):
|
|||
def test_super_tag(self):
|
||||
parent = tag.Tag("parent")
|
||||
st = tag.SuperTag(parent, "test", "sort")
|
||||
st.tracks = [ FakeTrack(i) for i in range(5) ]
|
||||
st.tracks = [ fake.Track(i) for i in range(5) ]
|
||||
|
||||
self.assertIsInstance(st, tag.Tag)
|
||||
self.assertEqual(st.parent, parent)
|
||||
|
|
|
@ -1,14 +1,11 @@
|
|||
# Copyright 2021 (c) Anna Schumaker.
|
||||
from . import fake
|
||||
from . import publisher
|
||||
from . import tag
|
||||
from . import tagstore
|
||||
import threading
|
||||
import unittest
|
||||
|
||||
class FakeTrack:
|
||||
def __init__(self, trackid):
|
||||
self.trackid = trackid
|
||||
|
||||
class TestTagStore(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.added = None
|
||||
|
@ -32,21 +29,21 @@ class TestTagStore(unittest.TestCase):
|
|||
store.Added.register(self.on_store_added)
|
||||
store.Removed.register(self.on_store_removed)
|
||||
|
||||
tag = store.add("test", 1)
|
||||
tag = store.add("test", fake.Track(1))
|
||||
self.assertEqual(self.added, tag)
|
||||
self.assertEqual(tag.tracks, [ 1 ])
|
||||
self.assertEqual(tag.tracks, [ fake.Track(1) ])
|
||||
|
||||
self.added = None
|
||||
self.assertEqual(store.add("test ", 2), tag)
|
||||
self.assertEqual(tag.tracks, [ 1, 2 ])
|
||||
self.assertEqual(store.add("test ", fake.Track(2)), tag)
|
||||
self.assertEqual(tag.tracks, [ fake.Track(1), fake.Track(2) ])
|
||||
self.assertIsNone(self.added)
|
||||
|
||||
store.remove(tag, 1)
|
||||
self.assertEqual(tag.tracks, [ 2 ])
|
||||
store.remove(tag, fake.Track(1))
|
||||
self.assertEqual(tag.tracks, [ fake.Track(2) ])
|
||||
self.assertIn("test", store.store.keys())
|
||||
self.assertIsNone(self.removed)
|
||||
|
||||
store.remove(tag, 2)
|
||||
store.remove(tag, fake.Track(2))
|
||||
self.assertEqual(tag.tracks, [ ])
|
||||
self.assertNotIn("test", store.store.keys())
|
||||
self.assertEqual(self.removed, tag)
|
||||
|
@ -56,8 +53,8 @@ class TestTagStore(unittest.TestCase):
|
|||
tag = store.add("test")
|
||||
self.assertEqual(tag.tracks, [ ])
|
||||
|
||||
tag.add_track(1)
|
||||
tag.add_track(2)
|
||||
tag.add_track(fake.Track(1))
|
||||
tag.add_track(fake.Track(2))
|
||||
|
||||
store.remove(tag)
|
||||
self.assertNotIn("test", store.store.keys())
|
||||
|
@ -71,9 +68,9 @@ class TestTagStore(unittest.TestCase):
|
|||
store = tagstore.TagStore()
|
||||
self.assertEqual(len(store), 0)
|
||||
|
||||
tag1 = store.add("test1", 1)
|
||||
tag2 = store.add("test2", 2)
|
||||
tag3 = store.add("test3", 3)
|
||||
tag1 = store.add("test1", fake.Track(1))
|
||||
tag2 = store.add("test2", fake.Track(2))
|
||||
tag3 = store.add("test3", fake.Track(3))
|
||||
|
||||
self.assertEqual(len(store), 3)
|
||||
self.assertEqual( store["test1"], tag1)
|
||||
|
@ -89,7 +86,7 @@ class TestTagStore(unittest.TestCase):
|
|||
|
||||
def test_tag_store_reset(self):
|
||||
store = tagstore.TagStore()
|
||||
tag = store.add("test", 1)
|
||||
tag = store.add("test", fake.Track(1))
|
||||
store.Added.register(self.on_store_added)
|
||||
store.Removed.register(self.on_store_removed)
|
||||
|
||||
|
@ -100,8 +97,8 @@ class TestTagStore(unittest.TestCase):
|
|||
|
||||
def test_tag_store_state(self):
|
||||
store = tagstore.TagStore()
|
||||
track = FakeTrack(1)
|
||||
tag = store.add("test", 1)
|
||||
track = fake.Track(1)
|
||||
tag = store.add("test", track)
|
||||
|
||||
state = store.__getstate__()
|
||||
self.assertEqual(set(state.keys()), set([ "store" ]))
|
||||
|
@ -123,14 +120,14 @@ class TestTagSuperStore(unittest.TestCase):
|
|||
superstore = tagstore.TagSuperStore()
|
||||
self.assertIsInstance(superstore, tagstore.TagStore)
|
||||
|
||||
parent = store.add("parent", 1)
|
||||
supertag = superstore.add(parent, "test ", 1)
|
||||
parent = store.add("parent", fake.Track(1))
|
||||
supertag = superstore.add(parent, "test ", fake.Track(1))
|
||||
self.assertIsInstance(supertag, tag.SuperTag)
|
||||
self.assertEqual(supertag.name, "test")
|
||||
self.assertEqual(supertag.tracks, [ 1 ])
|
||||
self.assertEqual(supertag.tracks, [ fake.Track(1) ])
|
||||
self.assertEqual(supertag.parent, parent)
|
||||
|
||||
superstore.remove(supertag, 1)
|
||||
superstore.remove(supertag, fake.Track(1))
|
||||
self.assertEqual(supertag.tracks, [ ])
|
||||
self.assertNotIn("test", superstore.store.keys())
|
||||
|
||||
|
@ -138,11 +135,11 @@ class TestTagSuperStore(unittest.TestCase):
|
|||
store = tagstore.TagStore()
|
||||
superstore = tagstore.TagSuperStore()
|
||||
|
||||
parent1 = store.add("parent1", 1)
|
||||
parent2 = store.add("parent2", 2)
|
||||
tag1 = superstore.add(parent1, "test1", 1)
|
||||
tag2 = superstore.add(parent1, "test2", 2)
|
||||
tag3 = superstore.add(parent2, "test3", 3)
|
||||
parent1 = store.add("parent1", fake.Track(1))
|
||||
parent2 = store.add("parent2", fake.Track(2))
|
||||
tag1 = superstore.add(parent1, "test1", fake.Track(1))
|
||||
tag2 = superstore.add(parent1, "test2", fake.Track(2))
|
||||
tag3 = superstore.add(parent2, "test3", fake.Track(3))
|
||||
|
||||
self.assertEqual(len(superstore), 3)
|
||||
self.assertEqual( superstore[parent1, "test1"], tag1)
|
||||
|
@ -161,9 +158,10 @@ class TestTagSuperStore(unittest.TestCase):
|
|||
store = tagstore.TagStore()
|
||||
superstore = tagstore.TagSuperStore()
|
||||
|
||||
track = FakeTrack(1)
|
||||
parent = store.add("test", 1)
|
||||
tag = superstore.add(parent, "test", 1)
|
||||
track = fake.Track(1)
|
||||
parent = store.add("test")
|
||||
tag = superstore.add(parent, "test", track)
|
||||
tag.tracks = [ 1 ]
|
||||
|
||||
self.assertEqual(superstore.init_track(parent, "test", track), tag)
|
||||
self.assertEqual(tag.tracks, [ track ])
|
||||
|
|
Loading…
Reference in New Issue