~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_diff.py

  • Committer: Patch Queue Manager
  • Date: 2014-10-06 16:32:42 UTC
  • mfrom: (6597.2.4 split-diff-tests)
  • Revision ID: pqm@pqm.ubuntu.com-20141006163242-c2cll01cwc24grkk
(vila) Split some tests to be able to get finer grained failures (Vincent
 Ladeuil)

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
import os
18
18
from cStringIO import StringIO
19
19
import subprocess
20
 
import sys
21
20
import tempfile
22
21
 
23
22
from bzrlib import (
32
31
    tests,
33
32
    transform,
34
33
    )
35
 
from bzrlib.symbol_versioning import deprecated_in
36
 
from bzrlib.tests import features, EncodingAdapter
37
 
from bzrlib.tests.blackbox.test_diff import subst_dates
38
34
from bzrlib.tests import (
39
35
    features,
40
 
    )
 
36
    EncodingAdapter,
 
37
)
 
38
from bzrlib.tests.blackbox.test_diff import subst_dates
 
39
from bzrlib.tests.scenarios import load_tests_apply_scenarios
 
40
 
 
41
 
 
42
load_tests = load_tests_apply_scenarios
41
43
 
42
44
 
43
45
def udiff_lines(old, new, allow_binary=False):
63
65
    return lines
64
66
 
65
67
 
 
68
class TestDiffOptions(tests.TestCase):
 
69
 
 
70
    def test_unified_added(self):
 
71
        """Check for default style '-u' only if no other style specified
 
72
        in 'diff-options'.
 
73
        """
 
74
        # Verify that style defaults to unified, id est '-u' appended
 
75
        # to option list, in the absence of an alternative style.
 
76
        self.assertEqual(['-a', '-u'], diff.default_style_unified(['-a']))
 
77
 
 
78
 
 
79
class TestDiffOptionsScenarios(tests.TestCase):
 
80
 
 
81
    scenarios = [(s, dict(style=s)) for s in diff.style_option_list]
 
82
    style = None # Set by load_tests_apply_scenarios from scenarios
 
83
 
 
84
    def test_unified_not_added(self):
 
85
        # Verify that for all valid style options, '-u' is not
 
86
        # appended to option list.
 
87
        ret_opts = diff.default_style_unified(diff_opts=["%s" % (self.style,)])
 
88
        self.assertEqual(["%s" % (self.style,)], ret_opts)
 
89
 
 
90
 
66
91
class TestDiff(tests.TestCase):
67
92
 
68
93
    def test_add_nl(self):
143
168
                          'old', ['boo\n'], 'new', ['goo\n'],
144
169
                          StringIO(), diff_opts=['-u'])
145
170
 
146
 
    def test_default_style_unified(self):
147
 
        """Check for default style '-u' only if no other style specified
148
 
        in 'diff-options'.
149
 
        """
150
 
        # Verify that style defaults to unified, id est '-u' appended
151
 
        # to option list, in the absence of an alternative style.
152
 
        self.assertEqual(['-a', '-u'], diff.default_style_unified(["-a"]))
153
 
        # Verify that for all valid style options, '-u' is not
154
 
        # appended to option list.
155
 
        for s in diff.style_option_list:
156
 
            ret_opts = diff.default_style_unified(diff_opts=["%s" % (s,)])
157
 
            self.assertEqual(["%s" % (s,)], ret_opts)
158
 
 
159
171
    def test_internal_diff_default(self):
160
172
        # Default internal diff encoding is utf8
161
173
        output = StringIO()
1484
1496
    def test_encodable_filename(self):
1485
1497
        # Just checks file path for external diff tool.
1486
1498
        # We cannot change CPython's internal encoding used by os.exec*.
1487
 
        import sys
1488
1499
        diffobj = diff.DiffFromTool(['dummy', '@old_path', '@new_path'],
1489
1500
                                    None, None, None)
1490
1501
        for _, scenario in EncodingAdapter.encoding_scenarios:
1502
1513
            self.assert_(fullpath.startswith(diffobj._root + '/safe'))
1503
1514
 
1504
1515
    def test_unencodable_filename(self):
1505
 
        import sys
1506
1516
        diffobj = diff.DiffFromTool(['dummy', '@old_path', '@new_path'],
1507
1517
                                    None, None, None)
1508
1518
        for _, scenario in EncodingAdapter.encoding_scenarios: