import repository from arizona
[raven.git] / lib / ravenlib / dirchecker_test.py
1 import dirchecker
2 import os
3 import time
4
5 os.system("rm -rf /tmp/dmtest")
6 os.mkdir("/tmp/dmtest")
7 file("/tmp/dmtest/a", "w").write("foo")
8 file("/tmp/dmtest/b", "w").write("bar")
9
10 dm = dirchecker.dirchecker("/tmp/dmtest")
11
12 # nothing should have changed
13 assert(dm.compare() == {})
14
15 # add a file
16 file("/tmp/dmtest/c","w").write("bar")
17
18 items = dm.compare()
19 assert(len(items)==1)
20 assert(items["/tmp/dmtest/c"]["what"] == "created")
21
22 # modify a file
23 time.sleep(1)
24 os.system("touch /tmp/dmtest/a")
25
26 items = dm.compare()
27 assert(len(items)==2)
28 assert(items["/tmp/dmtest/a"]["what"] == "mtime-changed")
29
30 # delete a file
31 os.remove("/tmp/dmtest/b")
32
33 items = dm.compare()
34 assert(len(items)==3)
35 assert(items["/tmp/dmtest/b"]["what"] == "deleted")
36
37 # now lets try a subdir
38 os.mkdir("/tmp/dmtest/e")
39 file("/tmp/dmtest/e/f", "w").write("foo")
40
41 # reset the checker
42 dm = dirchecker.dirchecker("/tmp/dmtest")
43
44 # nothing has changed
45 assert(dm.compare() == {})
46
47 # create a file in the subdir
48 file("/tmp/dmtest/e/g", "w").write("foo")
49
50 items = dm.compare()
51 assert(len(items)==1)
52 assert(items["/tmp/dmtest/e/g"]["what"] == "created")
53
54