~abentley/bzrtools/bzrtools.dev

« back to all changes in this revision

Viewing changes to tests.py

  • Committer: Michael Ellerman
  • Date: 2006-03-22 07:03:32 UTC
  • mto: (0.3.1 shelf-dev)
  • mto: This revision was merged to the branch mainline in revision 367.
  • Revision ID: michael@ellerman.id.au-20060322070332-ab379ffa63244cc8
Add test machinery to cope with subdirectories.

Show diffs side-by-side

added added

removed removed

Lines of Context:
6
6
class ShelfTests(bzrlib.tests.TestCaseWithTransport):
7
7
    ORIGINAL = '\n\nhello test world\n\n'
8
8
    MODIFIED = '\n\ngoodbye test world\n\n'
9
 
    DIFF_HEADER = "=== modified file 'a/test_file'\n"
10
 
    DIFF_1 = """--- a/test_file\t
11
 
+++ b/test_file\t
 
9
    DIFF_HEADER = "=== modified file 'a/%(filename)s'\n"
 
10
    DIFF_1 = """--- a/%(filename)s\t
 
11
+++ b/%(filename)s\t
12
12
@@ -1,4 +1,4 @@
13
13
 
14
14
 
25
25
+hello test world
26
26
 
27
27
"""
28
 
    def _check_diff(self, diff=DIFF_1):
29
 
        self.assertEqual(self.capture('diff', retcode=1),
30
 
            self.DIFF_HEADER + diff + '\n')
 
28
    def _check_diff(self, diff=DIFF_1, filename='test_file'):
 
29
        keys = { 'filename' : filename }
 
30
        hdr  = self.DIFF_HEADER % keys
 
31
        diff = diff % keys
 
32
        self.assertEqual(self.capture('diff', retcode=1), hdr + diff + '\n')
31
33
 
32
 
    def _check_shelf(self, idx, diff=DIFF_1):
 
34
    def _check_shelf(self, idx, diff=DIFF_1, filename='test_file'):
 
35
        diff = diff % { 'filename' : filename }
33
36
        shelf = open(os.path.join(self.tree.branch.base,
34
37
                '.shelf/shelves/default/' + idx)).read()
35
38
        shelf = shelf[shelf.index('\n') + 1:] # skip the message
361
364
        self.run_bzr('shelf', 'ls', retcode=0)
362
365
 
363
366
        # Fake a -p0 shelved patch
364
 
        diff = self.DIFF_1
 
367
        diff = self.DIFF_1 % { 'filename' : 'test_file' }
365
368
        diff = diff.replace('a/', '')
366
369
        diff = diff.replace('b/', '')
367
370
        open('.shelf/shelves/default/00', 'w').write(diff)
373
376
 
374
377
    def test_shelf_shelve_in_subdir(self):
375
378
        self.tree = self.make_branch_and_tree('.')
 
379
 
 
380
        subdir = 'subdir'
 
381
        os.mkdir(subdir)
 
382
        self.tree.add(subdir)
 
383
        os.chdir(subdir)
 
384
 
376
385
        self.__create_and_add_test_file()
377
386
 
378
387
        # Modify the test file
388
397
        # Unshelve, should succeed
389
398
        self.run_bzr('unshelve', '--all', retcode=0)
390
399
 
391
 
        self._check_diff()
 
400
        self._check_diff(filename='subdir/test_file')