1
2
3
4 import common
5 import test_vcs_svn
6 import test_vcs_git
7
8 import os
9 import commands
10 import tempfile
11
12 from moap.vcs import svn, git, git_svn
13
15
16 if not os.path.isfile('/usr/bin/git-svn') \
17 and not os.path.isfile('/usr/lib/git-core/git-svn') \
18 and not os.path.isfile('/usr/libexec/git-core/git-svn'):
19 skip = "No 'git-svn' binary, skipping test."
20
22 self.repository = self.createRepository()
23 self.livedir = self.createLive()
24 cmd = 'git svn init file://%s %s' % (self.repository, self.livedir)
25 (status, output) = commands.getstatusoutput(cmd)
26 self.failIf(status)
27
28 oldPath = os.getcwd()
29 os.chdir(self.livedir)
30 self.liveWriteFile("lets-create-a-head-to-make-git-happy",
31 "I lost my HEAD")
32 (status, output) = commands.getstatusoutput(
33 "git add lets-create-a-head-to-make-git-happy")
34 self.failIf(status)
35 (status, output) = commands.getstatusoutput(
36 "git commit -m first-commit")
37 self.failIf(status)
38 os.chdir(oldPath)
39
40
43
49
53
55
56 checkout = tempfile.mkdtemp(prefix="moap.test.")
57 os.mkdir(os.path.join(checkout, '.git'))
58 self.failIf(git_svn.detect(checkout))
59 os.system('rm -rf %s' % checkout)
60
63 v = git_svn.VCSClass(self.livedir)
64 self.failUnless(v)
65
66 paths = ['test/test1.py', 'test/test2.py', 'test/test3/test4.py',
67 'test5.py', 'test6/', 'test/test7/']
68 tree = v.createTree(paths)
69 keys = tree.keys()
70 keys.sort()
71 self.assertEquals(keys, ['', 'test', 'test/test3'])
72 self.failUnless('test1.py' in tree['test'])
73 self.failUnless('test2.py' in tree['test'])
74 self.failUnless('test7' in tree['test'])
75 self.failUnless('test4.py' in tree['test/test3'])
76 self.failUnless('test5.py' in tree[''], tree[''])
77 self.failUnless('test6' in tree[''], tree[''])
78
81 v = git_svn.VCSClass(self.livedir)
82 self.failUnless(v)
83
84 self.assertEquals(v.getUnknown(v.path), [])
85
86 path = os.path.join(self.livedir, 'test')
87 handle = open(path, 'w')
88 handle.write('test')
89 handle.close()
90
91 self.assertEquals(v.getUnknown(v.path), ['test'])
92
93 v.ignore(['test', ])
94
95 self.assertEquals(v.getUnknown(v.path), [])
96
99 v = git_svn.VCSClass(self.livedir)
100 self.failUnless(v)
101
102 self.assertEquals(v.diff(self.livedir), "")
103