Package moap :: Package test :: Module test_vcs_git_svn
[hide private]
[frames] | no frames]

Source Code for Module moap.test.test_vcs_git_svn

 1  # -*- Mode: Python; test-case-name: moap.test.test_vcs_git_svn -*- 
 2  # vi:si:et:sw=4:sts=4:ts=4 
 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   
14 -class GitSvnTestCase(test_vcs_svn.SVNTestCase):
15 # git-svn --version just errors about not having a git repo 16 if os.system('which git-svn > /dev/null 2>&1') != 0: 17 skip = "No 'git-svn' binary, skipping test." 18
19 - def setUp(self):
20 self.repository = self.createRepository() 21 self.livedir = self.createLive() 22 cmd = 'git-svn init file://%s %s' % (self.repository, self.livedir) 23 (status, output) = commands.getstatusoutput(cmd) 24 self.failIf(status) 25 26 oldPath = os.getcwd() 27 os.chdir(self.livedir) 28 self.liveWriteFile("lets-create-a-head-to-make-git-happy", "I lost my HEAD") 29 (status, output) = commands.getstatusoutput("git add lets-create-a-head-to-make-git-happy") 30 self.failIf(status) 31 (status, output) = commands.getstatusoutput("git commit -m first-commit") 32 self.failIf(status) 33 os.chdir(oldPath)
34 35
36 - def tearDown(self):
38
39 -class TestDetect(GitSvnTestCase):
40 - def testDetectRepository(self):
41 self.failIf(svn.detect(self.repository)) 42 self.failIf(git.detect(self.repository)) 43 self.failIf(git_svn.detect(self.repository))
44
45 - def testDetectCheckout(self):
46 self.failIf(git.detect(self.livedir)) 47 self.failUnless(git_svn.detect(self.livedir))
48
49 - def testHalfCheckout(self):
50 # should fail 51 checkout = tempfile.mkdtemp(prefix="moap.test.") 52 os.mkdir(os.path.join(checkout, '.git')) 53 self.failIf(git_svn.detect(checkout)) 54 os.system('rm -rf %s' % checkout)
55
56 -class TestTree(GitSvnTestCase):
57 - def testGitSvn(self):
58 v = git_svn.VCSClass(self.livedir) 59 self.failUnless(v) 60 61 paths = ['test/test1.py', 'test/test2.py', 'test/test3/test4.py', 62 'test5.py', 'test6/', 'test/test7/'] 63 tree = v.createTree(paths) 64 keys = tree.keys() 65 keys.sort() 66 self.assertEquals(keys, ['', 'test', 'test/test3']) 67 self.failUnless('test1.py' in tree['test']) 68 self.failUnless('test2.py' in tree['test']) 69 self.failUnless('test7' in tree['test']) 70 self.failUnless('test4.py' in tree['test/test3']) 71 self.failUnless('test5.py' in tree[''], tree['']) 72 self.failUnless('test6' in tree[''], tree[''])
73
74 -class TestIgnore(GitSvnTestCase):
75 - def testGetUnignored(self):
76 v = git_svn.VCSClass(self.livedir) 77 self.failUnless(v) 78 79 self.assertEquals(v.getNotIgnored(), []) 80 81 path = os.path.join(self.livedir, 'test') 82 handle = open(path, 'w') 83 handle.write('test') 84 handle.close() 85 86 self.assertEquals(v.getNotIgnored(), ['test']) 87 88 v.ignore(['test', ]) 89 90 self.assertEquals(v.getNotIgnored(), [])
91
92 -class TestDiff(GitSvnTestCase):
93 - def testDiff(self):
94 v = git_svn.VCSClass(self.livedir) 95 self.failUnless(v) 96 97 self.assertEquals(v.diff(self.livedir), "")
98