Example #1
0
def test_changed(cleandir):
    root = c.init()
    cf = c.changed_files(root)
    assert len(cf) == 0

    p = Path() / 'test_dir' / 'test.txt'
    time.sleep(.02)
    p.write_text('change')

    cf = c.changed_files(root)
    assert len(cf) == 1
Example #2
0
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
Example #3
0
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)
Example #4
0
def test_move_file(cleandir):
    root = c.init()
    src = Path() / 'test_dir' / 'test.txt'
    dest = Path() / 'test_dir' / 'empty_dir' / 'test.txt'
    src.rename(dest)

    cf = c.changed_files(root)
    assert (dest, "new") in cf
    assert (src, "rmv") in cf
Example #5
0
def test_new_dir(cleandir):
    assert not list(Path().glob('.cairo.pkl'))
    root = c.init()

    p = Path() / 'new_dir'
    p.mkdir()

    cf = c.changed_files(root)
    assert (p, "new") in cf
Example #6
0
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)
Example #7
0
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)
Example #8
0
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()
Example #9
0
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
Example #10
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()
Example #11
0
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)
Example #12
0
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)
Example #13
0
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()
Example #14
0
def test_remove_file2(cleandir):
    root = c.init()
    p = Path() / 'test_dir' / 'sub_dir' / 'test2.txt'
    p.unlink()
    assert (p, "rmv") in c.changed_files(root)