1
2
3
4 from common import unittest
5
6 import os
7 import commands
8 import tempfile
9
10 from moap.vcs import darcs
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.repo.")
18 os.system('darcs initialize --repodir=%s' % self.repository)
19 self.checkout = tempfile.mkdtemp(prefix="moap.test.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
41
43
44 checkout = tempfile.mkdtemp(prefix="moap.test.")
45 os.mkdir(os.path.join(checkout, '_darcs'))
46 self.failIf(darcs.detect(checkout))
47 os.system('rm -rf %s' % checkout)
48
51 v = darcs.VCSClass(self.checkout)
52 self.failUnless(v)
53
54 paths = ['test/test1.py', 'test/test2.py', 'test/test3/test4.py',
55 'test5.py', 'test6/', 'test/test7/']
56 tree = v.createTree(paths)
57 keys = tree.keys()
58 keys.sort()
59 self.assertEquals(keys, ['', 'test', 'test/test3'])
60 self.failUnless('test1.py' in tree['test'])
61 self.failUnless('test2.py' in tree['test'])
62 self.failUnless('test7' in tree['test'])
63 self.failUnless('test4.py' in tree['test/test3'])
64 self.failUnless('test5.py' in tree[''], tree[''])
65 self.failUnless('test6' in tree[''], tree[''])
66
69 v = darcs.VCSClass(self.checkout)
70 self.failUnless(v)
71
72 self.assertEquals(v.getNotIgnored(), [])
73
74 path = os.path.join(self.checkout, 'test')
75 handle = open(path, 'w')
76 handle.write('test')
77 handle.close()
78
79 self.assertEquals(v.getNotIgnored(), ['test'])
80
81 v.ignore(['test', ])
82
83 self.assertEquals(v.getNotIgnored(), [])
84
87 v = darcs.VCSClass(self.checkout)
88 self.failUnless(v)
89
90 self.assertEquals(v.diff(self.checkout), "")
91
93 v = darcs.VCSClass(self.checkout)
94 self.failUnless(v)
95
96 file = os.path.join(os.path.dirname(__file__), 'diff',
97 'svn_add_one_line.diff')
98 d = open(file).read()
99 v.getChanges(None, d)
100
102 v = darcs.VCSClass(self.checkout)
103 self.failUnless(v)
104
105 file = os.path.join(os.path.dirname(__file__), 'diff',
106 'svn_multiple.diff')
107 d = open(file).read()
108 v.getChanges(None, d)
109