1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- import lc.config as c
- import lc.model as m
- import tempfile
- class TestDB:
- def setup_method(self, _):
- c.DB.init(':memory:')
- c.DB.create_tables(m.MODELS)
- def test_create_user(self):
- name = 'gdritter'
- u = m.User.create(name=name)
- # it should be the only thing in the db
- all_users = m.User.select()
- assert len(all_users) == 1
- assert(all_users[0].id == u.id)
- assert(all_users[0].name == name)
- # we should be able to find it with the given name, too
- named_user = m.User.get(m.User.name == name)
- assert named_user.id == u.id
- assert named_user.name == name
- def test_find_tag(self):
- tag_name = 'food'
- t = m.Tag.find_tag(tag_name)
- # we should be able to find the tag with the given name
- named_tags = m.Tag.select(m.Tag.name == tag_name)
- assert len(named_tags) == 1
- # subsequent calls to find_tag should return the same db row
- t2 = m.Tag.find_tag(tag_name)
- assert t.id == t2.id
- def test_find_hierarchy(self):
- tag_name = 'food/bread/rye'
- t = m.Tag.find_tag(tag_name)
- # this should have created three DB rows: for 'food', for
- # 'food/bread', and for 'food/bread/rye':
- assert len(m.Tag.select()) == 3
- # searching for a prefix of the tag should yield the same
- # parent tag
- assert t.parent.id == m.Tag.get(name='food/bread').id
- assert t.parent.parent.id == m.Tag.get(name='food').id
- # creating a new hierarchical tag with a shared prefix should
- # only create the new child tag
- t2 = m.Tag.find_tag('food/bread/baguette')
- assert len(m.Tag.select()) == 4
- # it should share the same parent tags
- assert t2.parent.id == t.parent.id
- assert t2.parent.parent.id == t.parent.parent.id
- # trying to get a hierarchical tag should result in the same
- # one already entered
- assert t.id == m.Tag.get(name='food/bread/rye').id
- assert t2.id == m.Tag.get(name='food/bread/baguette').id
- def teardown_method(self, _):
- c.DB.close()
|