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 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
21 - def setUp(self):
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
41 - def tearDown(self):
43
44 -class TestDetect(GitSvnTestCase):
45 - def testDetectRepository(self):
46 self.failIf(svn.detect(self.repository)) 47 self.failIf(git.detect(self.repository)) 48 self.failIf(git_svn.detect(self.repository))
49
50 - def testDetectCheckout(self):
51 self.failIf(git.detect(self.livedir)) 52 self.failUnless(git_svn.detect(self.livedir))
53
54 - def testHalfCheckout(self):
55 # should fail 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
61 -class TestTree(GitSvnTestCase):
62 - def testGitSvn(self):
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
79 -class TestIgnore(GitSvnTestCase):
80 - def testGetUnignored(self):
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
97 -class TestDiff(GitSvnTestCase):
98 - def testDiff(self):
99 v = git_svn.VCSClass(self.livedir) 100 self.failUnless(v) 101 102 self.assertEquals(v.diff(self.livedir), "")
103