def test_tiddler_delete(): store_root = os.path.join(TMPDIR, 'test_store') bag = Bag('alpha') STORE.put(bag) tiddler = Tiddler('Foo', bag.name) tiddler.text = 'lipsum' STORE.put(tiddler) tiddler = Tiddler('Foo', bag.name) tiddler.text = 'lorem ipsum' STORE.put(tiddler) tiddler = Tiddler('Foo', bag.name) STORE.delete(tiddler) bag_dir = os.path.join(store_root, 'bags', 'alpha') tiddler_file = os.path.join(bag_dir, 'tiddlers', 'Foo') assert not os.path.isfile(tiddler_file) info = run('git', 'log', '-n1', '--format=%ae %ce: %s', cwd=store_root) assert info.strip() == \ '[email protected] [email protected]: tiddler delete: alpha/Foo' assert run('git', 'diff', '--exit-code', cwd=store_root) == '' missing_tiddler = Tiddler('Baz', bag.name) with raises(NoTiddlerError): STORE.delete(missing_tiddler)
def test_bag_put(): bag = Bag('alpha') STORE.put(bag) store_root = os.path.join(TMPDIR, 'test_store') bag_dir = os.path.join(store_root, 'bags', 'alpha') assert os.path.isdir(bag_dir) info = run('git', 'log', '-n1', '--format=%ae %ce: %s', cwd=store_root) assert info.strip() == \ '[email protected] [email protected]: bag put: alpha' assert run('git', 'diff', '--exit-code', cwd=store_root) == ''
def test_recipe_put(): recipe = Recipe('omega') STORE.put(recipe) store_root = os.path.join(TMPDIR, 'test_store') recipe_filename = os.path.join(store_root, 'recipes', 'omega') assert os.path.isfile(recipe_filename) info = run('git', 'log', '-n1', '--format=%ae %ce: %s', cwd=store_root) assert info.strip() == \ '[email protected] [email protected]: recipe put: omega' assert run('git', 'diff', '--exit-code', cwd=store_root) == ''
def test_user_put(): user = User('John', note='lorem ipsum') STORE.put(user) store_root = os.path.join(TMPDIR, 'test_store') user_filename = os.path.join(store_root, 'users', 'John') assert os.path.isfile(user_filename) info = run('git', 'log', '-n1', '--format=%ae %ce: %s', cwd=store_root) assert info.strip() == \ '[email protected] [email protected]: user put: John' assert run('git', 'diff', '--exit-code', cwd=store_root) == ''
def test_tiddler_put(): store_root = os.path.join(TMPDIR, "test_store") bag = Bag("alpha") tiddler = Tiddler("Foo", bag.name) tiddler.text = "lorem ipsum\ndolor sit amet" tiddler.tags = ["foo", "bar"] STORE.put(bag) bag_dir = os.path.join(store_root, "bags", "alpha") assert os.path.isdir(bag_dir) assert os.path.isdir(os.path.join(bag_dir, "tiddlers")) STORE.put(tiddler) tiddler_file = os.path.join(bag_dir, "tiddlers", "Foo") assert os.path.isfile(tiddler_file) assert len(tiddler.revision) == 40 with open(tiddler_file) as fh: contents = fh.read() assert "tags: foo bar" in contents assert tiddler.text in contents info = run("git", "log", "-n1", "--format=%ae %ce: %s", cwd=store_root) assert info.strip() == "[email protected] [email protected]: tiddler put"
def test_commit(): tiddler = Tiddler('Bar', BAG.name) tiddler.type = 'application/binary' tiddler.text = 'lorem ipsum' STORE.put(tiddler) bag_dir = os.path.join(STORE_ROOT, 'bags', 'alpha') tiddler_file = os.path.join(bag_dir, 'tiddlers', 'Bar') binary_file = os.path.join(bag_dir, 'tiddlers', '_binaries', 'Bar') trevs = run('git', 'log', '--format=%h', '--', tiddler_file, cwd=STORE_ROOT) brevs = run('git', 'log', '--format=%h', '--', binary_file, cwd=STORE_ROOT) assert len(trevs.splitlines()) == 1 assert len(brevs.splitlines()) == 1 assert trevs == brevs tiddler.text = 'lorem ipsum\ndolor sit amet' STORE.put(tiddler) trevs = run('git', 'log', '--format=%h', '--', tiddler_file, cwd=STORE_ROOT) brevs = run('git', 'log', '--format=%h', '--', binary_file, cwd=STORE_ROOT) assert len(trevs.splitlines()) == 2 assert len(brevs.splitlines()) == 2 assert trevs == brevs STORE.delete(tiddler) trevs = run('git', 'log', '--format=%h', '--', tiddler_file, cwd=STORE_ROOT) brevs = run('git', 'log', '--format=%h', '--', binary_file, cwd=STORE_ROOT) assert len(trevs.splitlines()) == 3 assert len(brevs.splitlines()) == 3 assert trevs == brevs
def test_tiddler_put(): store_root = os.path.join(TMPDIR, 'test_store') bag = Bag('alpha') tiddler = Tiddler('Bar', bag.name) tiddler.text = 'lorem ipsum' tiddler.tags = ['foo', 'bar'] STORE.put(bag) bag_dir = os.path.join(store_root, 'bags', 'alpha') assert os.path.isdir(bag_dir) assert os.path.isdir(os.path.join(bag_dir, 'tiddlers')) STORE.put(tiddler) tiddler_file = os.path.join(bag_dir, 'tiddlers', 'Bar') assert os.path.isfile(tiddler_file) assert re.match('^[a-z0-9]{10}$', tiddler.revision) with open(tiddler_file) as fh: contents = fh.read() assert 'tags: foo bar' in contents assert 'lorem ipsum' in contents info = run('git', 'log', '-n1', '--format=%ae %ce: %s', cwd=store_root) assert info.strip() == \ '[email protected] [email protected]: tiddler put: alpha/Bar' assert run('git', 'diff', '--exit-code', cwd=store_root) == '' info = run('git', 'log', '--format=%h', '--', tiddler_file, cwd=store_root) assert len(info.splitlines()) == 1 # ensure there are no undesirable side-effects tiddler = Tiddler('Bar', bag.name) tiddler.text = 'lorem ipsum\ndolor sit amet' tiddler.tags = ['foo'] STORE.put(tiddler) assert tiddler.text == 'lorem ipsum\ndolor sit amet' assert tiddler.tags == ['foo']