def test_indexing_on_delete(): # erase previously created tiddler by blanking its tags tiddler = UserDict() tiddler.title = 'HelloWorld' tiddler.bag = 'alpha' tiddler.tags = [] hooks.tiddler_put_hook(STORE, tiddler) tiddler.bag = 'bravo' tiddler.tags = ['aaa', 'bbb', 'ccc'] hooks.tiddler_put_hook(STORE, tiddler) tiddler = UserDict() tiddler.title = 'LoremIpsum' tiddler.bag = 'bravo' tiddler.tags = ['...', 'bbb'] hooks.tiddler_put_hook(STORE, tiddler) tids, tags, rels = _retrieve_all() assert len(tids) == 2 assert len(tags) == 4 assert len(rels) == 5 hooks.tiddler_delete_hook(STORE, tiddler) tids, tags, rels = _retrieve_all() assert len(tids) == 1 assert tids[0][1] == 'HelloWorld' assert len(tags) == 3 assert [tag[1] for tag in tags] == ['aaa', 'bbb', 'ccc'] assert len(rels) == 3
def test_key_on_title_and_bag(): tiddler = UserDict() tiddler.title = 'HelloWorld' tiddler.bag = 'alpha' tiddler.tags = ['foo', 'bar'] hooks.tiddler_put_hook(STORE, tiddler) tids, tags, rels = _retrieve_all() assert len(tids) == 1 assert len(tags) == 2 assert len(rels) == 2 tiddler.bag = 'bravo' hooks.tiddler_put_hook(STORE, tiddler) tids, tags, rels = _retrieve_all() assert len(tids) == 2 assert len(tags) == 2 assert len(rels) == 4
def test_indexing_on_create_and_modify(): tiddler = UserDict() tiddler.title = 'HelloWorld' tiddler.bag = 'alpha' tiddler.tags = ['foo', 'bar'] for i in xrange(2): # ensures dupes are ignored hooks.tiddler_put_hook(STORE, tiddler) tids, tags, rels = _retrieve_all() assert len(tids) == 1 assert tids[0][1:] == ('HelloWorld', 'alpha') assert len(tags) == 2 assert tags[0][1:] == ('foo',) assert tags[1][1:] == ('bar',) assert len(rels) == 2 assert (tids[0][0], tags[0][0]) in rels assert (tids[0][0], tags[1][0]) in rels tiddler.tags = ['baz'] hooks.tiddler_put_hook(STORE, tiddler) tids, tags, rels = _retrieve_all() assert len(tids) == 1 assert tids[0][1:] == ('HelloWorld', 'alpha') assert len(tags) == 1 assert tags[0][1:] == ('baz',) assert len(rels) == 1 assert (tids[0][0], tags[0][0]) in rels tiddler.tags = [] hooks.tiddler_put_hook(STORE, tiddler) tids, tags, rels = _retrieve_all() assert len(tids) == 0 assert len(tags) == 0 assert len(rels) == 0
def test_tags_and_tagged(): cmd = COMMANDS['tags'] cmd([]) sys.stdout.pos = 0 stdout = sys.stdout.read() assert stdout == '\n' tiddler = UserDict() tiddler.title = 'HelloWorld' tiddler.bag = 'alpha' tiddler.tags = ['foo', 'bar'] hooks.tiddler_put_hook(STORE, tiddler) tiddler = UserDict() tiddler.title = 'HelloWorld' tiddler.bag = 'bravo' tiddler.tags = ['foo', 'bar'] hooks.tiddler_put_hook(STORE, tiddler) tiddler = UserDict() tiddler.title = 'Lipsum' tiddler.bag = 'alpha' tiddler.tags = ['bar', 'baz'] hooks.tiddler_put_hook(STORE, tiddler) sys.stdout.truncate(0) # reset cmd([]) sys.stdout.pos = 0 stdout = sys.stdout.read() assert stdout == 'foo\nbar\nbaz\n' sys.stdout.truncate(0) # reset cmd(['foo']) sys.stdout.pos = 0 stdout = sys.stdout.read() assert stdout == 'tag: bar\ntiddler: alpha/HelloWorld\ntiddler: bravo/HelloWorld\n' sys.stdout.truncate(0) # reset cmd(['bar']) sys.stdout.pos = 0 stdout = sys.stdout.read() assert stdout == 'tag: foo\ntag: baz\ntiddler: alpha/HelloWorld\ntiddler: bravo/HelloWorld\ntiddler: alpha/Lipsum\n' sys.stdout.truncate(0) # reset cmd(['foo', 'bar']) sys.stdout.pos = 0 stdout = sys.stdout.read() assert stdout == 'tiddler: alpha/HelloWorld\ntiddler: bravo/HelloWorld\n' sys.stdout.truncate(0) # reset cmd(['foo', 'baz']) sys.stdout.pos = 0 stdout = sys.stdout.read() assert stdout == '\n' sys.stdout.truncate(0) # reset cmd(['foo', 'bar', 'baz']) sys.stdout.pos = 0 stdout = sys.stdout.read() assert stdout == '\n'