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

Source Code for Module moap.test.test_vcs_bzr

  1  # -*- Mode: Python; test-case-name: moap.test.test_vcs_bzr -*- 
  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 bzr 
  9   
 10  from moap.test import common 
 11   
12 -class BzrTestCase(common.TestCase):
13 if os.system('bzr --version > /dev/null 2>&1') != 0: 14 skip = "No 'bzr' binary, skipping test." 15
16 - def setUp(self):
17 self.repository = tempfile.mkdtemp(prefix="moap.test.repo.") 18 os.system('bzr init %s' % self.repository) 19 self.checkout = tempfile.mkdtemp(prefix="moap.test.checkout.") 20 os.rmdir(self.checkout) 21 cmd = 'bzr get %s %s' % (self.repository, self.checkout) 22 (status, output) = commands.getstatusoutput(cmd) 23 self.failIf(status, "Non-null status %r" % status)
24
25 - def tearDown(self):
26 os.system('rm -rf %s' % self.checkout) 27 os.system('rm -rf %s' % self.repository)
28
29 -class TestDetect(BzrTestCase):
30 - def testDetectRepository(self):
31 # In Bzr-o world, the repository is a branch too 32 self.failUnless(bzr.detect(self.repository))
33
34 - def testDetectCheckout(self):
35 # should succeed 36 self.failUnless(bzr.detect(self.checkout))
37
38 - def testHalfCheckout(self):
39 # should fail 40 checkout = tempfile.mkdtemp(prefix="moap.test.") 41 os.mkdir(os.path.join(checkout, '_bzr')) 42 self.failIf(bzr.detect(checkout)) 43 os.system('rm -rf %s' % checkout)
44
45 -class TestCommit(BzrTestCase):
46 - def testQuotedCommit(self):
47 filename = os.path.join(self.checkout, 'one_line_file.txt') 48 open(filename, 'w').write('This is one line file.\n') 49 cmd = 'bzr add %s' % filename 50 (status, output) = commands.getstatusoutput(cmd) 51 self.failIf(status, "Non-null status %r" % status) 52 53 v = bzr.VCSClass(self.checkout) 54 self.failUnless(v) 55 v.commit(['one_line_file.txt', ], "I contain quotes like ' and \"")
56 57
58 -class TestTree(BzrTestCase):
59 - def testBzr(self):
60 v = bzr.VCSClass(self.checkout) 61 self.failUnless(v) 62 63 paths = ['test/test1.py', 'test/test2.py', 'test/test3/test4.py', 64 'test5.py', 'test6/', 'test/test7/'] 65 tree = v.createTree(paths) 66 keys = tree.keys() 67 keys.sort() 68 self.assertEquals(keys, ['', 'test', 'test/test3']) 69 self.failUnless('test1.py' in tree['test']) 70 self.failUnless('test2.py' in tree['test']) 71 self.failUnless('test7' in tree['test']) 72 self.failUnless('test4.py' in tree['test/test3']) 73 self.failUnless('test5.py' in tree[''], tree['']) 74 self.failUnless('test6' in tree[''], tree[''])
75
76 -class TestIgnore(BzrTestCase):
77 - def testGetUnignored(self):
78 v = bzr.VCSClass(self.checkout) 79 self.failUnless(v) 80 81 self.assertEquals(v.getUnknown(v.path), []) 82 83 path = os.path.join(self.checkout, 'test') 84 handle = open(path, 'w') 85 handle.write('test') 86 handle.close() 87 88 self.assertEquals(v.getUnknown(v.path), ['test']) 89 90 v.ignore(['test', ]) 91 92 self.assertEquals(v.getUnknown(v.path), [])
93
94 -class TestEmptyDiff(BzrTestCase):
95 - def testDiff(self):
96 v = bzr.VCSClass(self.checkout) 97 self.failUnless(v) 98 99 self.assertEquals(v.diff(self.checkout), "")
100
101 -class TestDiff(BzrTestCase):
102 - def setUp(self):
103 BzrTestCase.setUp(self) 104 105 filename = os.path.join(self.checkout, 'one_line_file.txt') 106 open(filename, 'w').write('This is one line file.\n') 107 cmd = 'bzr add %s' % filename 108 (status, output) = commands.getstatusoutput(cmd) 109 self.failIf(status, "Non-null status %r" % status) 110 111 dirname = os.path.join(self.checkout, 'dir') 112 cmd = 'bzr mkdir %s' % dirname 113 (status, output) = commands.getstatusoutput(cmd) 114 self.failIf(status, "Non-null status %r" % status) 115 116 filename = os.path.join(self.checkout, 'dir', 'two_line_file.txt') 117 open(filename, 'w').write('This is\ntwo line file.\n') 118 cmd = 'bzr add %s' % filename 119 (status, output) = commands.getstatusoutput(cmd) 120 self.failIf(status, "Non-null status %r" % status)
121
122 - def testNonemptyDiff(self):
123 v = bzr.VCSClass(self.checkout) 124 self.failUnless(v) 125 126 self.failIfEquals(v.diff(self.checkout), '')
127
128 - def testTopLevelDiff(self):
129 v = bzr.VCSClass(self.checkout) 130 self.failUnless(v) 131 132 diffs = v.getChanges(self.checkout) 133 self.assertEquals(diffs, {'one_line_file.txt': [(0, 0, 1, 1)], 134 'dir/two_line_file.txt': [(0, 0, 1, 2)]})
135
136 - def testSubDirDiff(self):
137 v = bzr.VCSClass(self.checkout) 138 self.failUnless(v) 139 140 dirname = os.path.join(self.checkout, 'dir') 141 diffs = v.getChanges(dirname) 142 self.assertEquals(diffs, {'dir/two_line_file.txt': [(0, 0, 1, 2)]})
143
144 - def testFileDiff(self):
145 v = bzr.VCSClass(self.checkout) 146 self.failUnless(v) 147 148 filename = os.path.join(self.checkout, 'one_line_file.txt') 149 diffs = v.getChanges(filename) 150 self.assertEquals(diffs, {'one_line_file.txt': [(0, 0, 1, 1)]})
151