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  import os 
  5  import commands 
  6  import tempfile 
  7   
  8  from moap.vcs import darcs 
  9   
 10  from moap.test import common 
 11   
12 -class DarcsTestCase(common.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.darcs.repo.") 18 os.system('darcs initialize --repodir=%s' % self.repository) 19 self.checkout = tempfile.mkdtemp(prefix="moap.test.darcs.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 "darcs checkout not detected")
42
43 - def testHalfCheckout(self):
44 # should fail 45 checkout = tempfile.mkdtemp(prefix="moap.test.") 46 os.mkdir(os.path.join(checkout, '_darcs')) 47 self.failIf(darcs.detect(checkout)) 48 os.system('rm -rf %s' % checkout)
49
50 -class TestTree(DarcsTestCase):
51 - def testDarcs(self):
52 v = darcs.VCSClass(self.checkout) 53 self.failUnless(v) 54 55 paths = ['test/test1.py', 'test/test2.py', 'test/test3/test4.py', 56 'test5.py', 'test6/', 'test/test7/'] 57 tree = v.createTree(paths) 58 keys = tree.keys() 59 keys.sort() 60 self.assertEquals(keys, ['', 'test', 'test/test3']) 61 self.failUnless('test1.py' in tree['test']) 62 self.failUnless('test2.py' in tree['test']) 63 self.failUnless('test7' in tree['test']) 64 self.failUnless('test4.py' in tree['test/test3']) 65 self.failUnless('test5.py' in tree[''], tree['']) 66 self.failUnless('test6' in tree[''], tree[''])
67
68 -class TestIgnore(DarcsTestCase):
69 - def testGetUnignored(self):
70 v = darcs.VCSClass(self.checkout) 71 self.failUnless(v) 72 73 self.assertEquals(v.getUnknown(v.path), []) 74 75 path = os.path.join(self.checkout, 'test') 76 handle = open(path, 'w') 77 handle.write('test') 78 handle.close() 79 80 self.assertEquals(v.getUnknown(v.path), ['test']) 81 82 v.ignore(['test', ]) 83 84 self.assertEquals(v.getUnknown(v.path), [])
85
86 -class TestDiff(DarcsTestCase):
87 - def testDiff(self):
88 v = darcs.VCSClass(self.checkout) 89 self.failUnless(v) 90 91 self.assertEquals(v.diff(self.checkout), "")
92
93 - def testGetChanges(self):
94 v = darcs.VCSClass(self.checkout) 95 self.failUnless(v) 96 97 file = os.path.join(os.path.dirname(__file__), 'diff', 98 'svn_add_one_line.diff') 99 d = open(file).read() 100 v.getChanges(None, d)
101
102 - def testGetChangesMultiple(self):
103 v = darcs.VCSClass(self.checkout) 104 self.failUnless(v) 105 106 file = os.path.join(os.path.dirname(__file__), 'diff', 107 'svn_multiple.diff') 108 d = open(file).read() 109 v.getChanges(None, d)
110