def test_change_file_back_in_time(cleandir): c.init() p = Path() / 'test_new.txt' p.touch() r = c.init() c.commit(r) r = c.init() v = c.get_versions(r)[0] p.write_text('change1') r = c.init() c.commit(r) r = c.init() vs = c.get_versions(r) vtime = vs[0].time before = v.time #- timedelta(microseconds=1) after = v.time + timedelta(microseconds=10) r = c.init() c.ft_at_time(r, before) assert not p.read_text() p.write_text('change2') r = c.init() assert not c.changed_files(r)
def test_search_all_after_mod(cleandir): root = c.init() time.sleep(.02) (Path() / 'test_dir' / 'test.txt').write_text('new') c.commit(root) assert c.search_all(root, "test1") assert c.search_all(root, "new")
def test_img_file(cleandir): root = c.init() create_test_image((155, 0, 0)) cf = c.changed_files(root) assert (Path() / 'test.png', 'new') in cf c.commit(root) time.sleep(0.2) create_test_image((0, 155, 155)) cf2 = c.changed_files(root) assert (Path() / 'test.png', 'mod') in cf2
def test_new_file_version(cleandir): root = c.init() p = Path() / 'test_dir' / 'new_file2.txt' p.touch() root = c.init() c.commit(root) root = c.init() v = c.get_versions(root) assert v
def test_new_file_new_dir_commit(cleandir): c.init() d = Path() / 'new_dir' p = Path() / 'new_dir' / 'new_file.txt' d.mkdir() p.touch() root = c.init() c.commit(root) root = c.init() assert not c.changed_files(root)
def test_reset(cleandir): c.init() p = Path() / 'newfile.txt' p.touch() root = c.init() c.commit(root) p.unlink() root = c.init() c.reset(root) root = c.init() assert not c.changed_files(root) assert p.exists()
def test_commit(cleandir): root = c.init() # new file p = Path() / 'new_file.txt' p.touch() # changed file p2 = Path() / 'test_dir' / 'test.txt' p2.write_text('change') # moved file f = Path() f = f / 'test_dir' / 'sub_dir' / 'test2.txt' p3 = Path() / 'test_dir' / 'empty_dir' c.mv_file(root, f, p3) # moved file 2 f = Path() / 'test3.txt' dest = Path() / 'test_dir' / 'test3.txt' f.rename(dest) # moved file 3 f = Path() / 'test5.txt' cd = os.getcwd() os.chdir('..') newdir = Path(tempfile.mkdtemp()) os.chdir(cd) f.rename(newdir / 'test5.txt') # removed file p4 = Path() / 'test_dir' / 'empty_dir' / 'test2.txt' c.rm_file(root, p4) # removed file 2 p5 = Path() / 'test4.txt' p5.unlink() v1 = c.get_versions(root) c.commit(root) assert c.find_file_path(root, p) v2 = c.get_versions(root) cf2 = c.changed_files(root) print(cf2) assert len(v2) == (len(v1) + 1) assert len(cf2) == 0
def test_add_dir_and_file_change_in_time(cleandir): c.init() d = Path() / 'new_dir' d.mkdir() p = d / 'new_file.txt' p.touch() root = c.init() c.commit(root) root = c.init() c.ft_at_time(root, datetime.now() - timedelta(days=1)) root = c.init() assert not c.changed_files(root) root = c.init() c.ft_at_time(root, datetime.now()) assert d.exists() and p.exists()
def test_new_dir_and_files(): with tempfile.TemporaryDirectory() as td: cwd = Path(td) os.chdir(td) c.init() a = cwd / 'a' n1 = cwd / 'a' / 'n1.txt' n2 = cwd / 'n2.txt' a.mkdir() n1.touch() n2.touch() root = c.init() c.commit(root) root = c.init() assert not c.changed_files(root)
def test_data_change_in_time(cleandir): root = c.init() p = Path() / 'test_dir' / 'test.txt' old_data = p.read_text() time.sleep(.02) p.write_text('change') c.commit(root) vtime = c.get_versions(root)[-1].time before = vtime - timedelta(microseconds=10) after = vtime + timedelta(microseconds=10) c.ft_at_time(root, before) data = p.read_text() assert data == old_data c.ft_at_time(root, after) data = p.read_text() assert data == "change"
def test_add_file_change_in_time(cleandir): root = c.init() p = Path() / 'new_file.txt' p.touch() #root = c.init() c.commit(root) assert p.exists() before = datetime.now() - timedelta(days=1) after = datetime.now() + timedelta(days=1) #root = c.init() c.ft_at_time(root, before) assert not p.exists() #root = c.init() assert not c.changed_files(root) #root = c.init() c.ft_at_time(root, after) assert p.exists() #root = c.init() assert not c.changed_files(root)
def test_commit_when_not_current(cleandir): c.init() d = Path() / 'new' d.mkdir() p = d / 'new_file.txt' p.touch() root = c.init() c.commit(root) vtime = c.get_versions(root)[-1].time before = vtime - timedelta(microseconds=10) root = c.init() c.ft_at_time(root, before) (Path() / 'test3.txt').write_text('changed') root = c.init() assert not c.changed_files(root) root = c.init() pytest.raises(c.CairoException, c.commit, root)
def test_remove2_change_in_time(cleandir): c.init() p = Path() / 'test_dir' / 'test.txt' p.unlink() root = c.init() c.commit(root) vtime = c.get_versions(root)[-1].time before = vtime - timedelta(microseconds=1) after = vtime + timedelta(microseconds=10) root = c.init() c.ft_at_time(root, before) root = c.init() assert not c.changed_files(root) assert p.exists() root = c.init() c.ft_at_time(root, after) assert not p.exists()
def test_move_and_data_change_in_time(cleandir): root = c.init() src = Path() / 'test_dir' / 'test.txt' dest = Path() / 'test_dir' / 'empty_dir' / 'test.txt' src.rename(dest) old_data = dest.read_text() time.sleep(.02) dest.write_text('change') c.commit(root) vtime = c.get_versions(root)[-1].time before = vtime - timedelta(microseconds=10) after = vtime + timedelta(microseconds=10) c.ft_at_time(root, before) data = src.read_text() assert data == old_data c.ft_at_time(root, after) data = dest.read_text() assert data == "change"
def test_search_with_image(cleandir): root = c.init() create_test_image((155, 0, 0)) c.commit(root) assert c.search_all(root, 'test1')