1
2
3
4 import os
5 import commands
6 import tempfile
7
8 from moap.vcs import darcs
9
10 from moap.test import common
11
13 if os.system('darcs --version > /dev/null 2>&1') != 0:
14 skip = "No 'darcs' binary, skipping test."
15
17 self.repository = tempfile.mkdtemp(prefix="moap.test.darcs.repo.")
18 os.system('darcs initialize --repodir=%s' % self.repository)
19 self.checkout = tempfile.mkdtemp(prefix="moap.test.darcs.checkout.")
20 os.rmdir(self.checkout)
21 cmd = 'darcs get %s %s' % (self.repository, self.checkout)
22 (status, output) = commands.getstatusoutput(cmd)
23 self.failIf(status, "Non-null status %r" % status)
24
25 a = os.path.join(self.checkout, '_darcs', 'prefs', 'author')
26 h = open(a, 'w')
27 h.write('e@mail.org')
28 h.close()
29
31 os.system('rm -rf %s' % self.checkout)
32 os.system('rm -rf %s' % self.repository)
33
37
39
40 self.failUnless(darcs.detect(self.checkout),
41 "darcs checkout not detected")
42
44
45 checkout = tempfile.mkdtemp(prefix="moap.test.")
46 os.mkdir(os.path.join(checkout, '_darcs'))
47 self.failIf(darcs.detect(checkout))
48 os.system('rm -rf %s' % checkout)
49
52 v = darcs.VCSClass(self.checkout)
53 self.failUnless(v)
54
55 paths = ['test/test1.py', 'test/test2.py', 'test/test3/test4.py',
56 'test5.py', 'test6/', 'test/test7/']
57 tree = v.createTree(paths)
58 keys = tree.keys()
59 keys.sort()
60 self.assertEquals(keys, ['', 'test', 'test/test3'])
61 self.failUnless('test1.py' in tree['test'])
62 self.failUnless('test2.py' in tree['test'])
63 self.failUnless('test7' in tree['test'])
64 self.failUnless('test4.py' in tree['test/test3'])
65 self.failUnless('test5.py' in tree[''], tree[''])
66 self.failUnless('test6' in tree[''], tree[''])
67
70 v = darcs.VCSClass(self.checkout)
71 self.failUnless(v)
72
73 self.assertEquals(v.getUnknown(v.path), [])
74
75 path = os.path.join(self.checkout, 'test')
76 handle = open(path, 'w')
77 handle.write('test')
78 handle.close()
79
80 self.assertEquals(v.getUnknown(v.path), ['test'])
81
82 v.ignore(['test', ])
83
84 self.assertEquals(v.getUnknown(v.path), [])
85
88 v = darcs.VCSClass(self.checkout)
89 self.failUnless(v)
90
91 self.assertEquals(v.diff(self.checkout), "")
92
94 v = darcs.VCSClass(self.checkout)
95 self.failUnless(v)
96
97 file = os.path.join(os.path.dirname(__file__), 'diff',
98 'svn_add_one_line.diff')
99 d = open(file).read()
100 v.getChanges(None, d)
101
103 v = darcs.VCSClass(self.checkout)
104 self.failUnless(v)
105
106 file = os.path.join(os.path.dirname(__file__), 'diff',
107 'svn_multiple.diff')
108 d = open(file).read()
109 v.getChanges(None, d)
110