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

Source Code for Module moap.test.test_vcs_darcs

  1  # -*- Mode: Python; test-case-name: moap.test.test_vcs_darcs -*- 
  2  # vi:si:et:sw=4:sts=4:ts=4 
  3   
  4  from common import unittest 
  5   
  6  import os 
  7  import commands 
  8  import tempfile 
  9   
 10  from moap.vcs import darcs 
 11   
12 -class DarcsTestCase(unittest.TestCase):
13 if os.system('darcs --version > /dev/null 2>&1') != 0: 14 skip = "No 'darcs' binary, skipping test." 15
16 - def setUp(self):
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 # create _darcs/prefs/author 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
30 - def tearDown(self):
31 os.system('rm -rf %s' % self.checkout) 32 os.system('rm -rf %s' % self.repository)
33
34 -class TestDetect(DarcsTestCase):
35 - def testDetectRepository(self):
36 self.failIf(darcs.detect(self.repository))
37
38 - def testDetectCheckout(self):
39 # should succeed 40 self.failUnless(darcs.detect(self.checkout))
41
42 - def testHalfCheckout(self):
43 # should fail 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
49 -class TestTree(DarcsTestCase):
50 - def testDarcs(self):
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
67 -class TestIgnore(DarcsTestCase):
68 - def testGetUnignored(self):
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
85 -class TestDiff(DarcsTestCase):
86 - def testDiff(self):
87 v = darcs.VCSClass(self.checkout) 88 self.failUnless(v) 89 90 self.assertEquals(v.diff(self.checkout), "")
91
92 - def testGetChanges(self):
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
101 - def testGetChangesMultiple(self):
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