~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/per_tree/test_path_content_summary.py

  • Committer: Tarmac
  • Author(s): Vincent Ladeuil
  • Date: 2017-01-30 14:42:05 UTC
  • mfrom: (6620.1.1 trunk)
  • Revision ID: tarmac-20170130144205-r8fh2xpmiuxyozpv
Merge  2.7 into trunk including fix for bug #1657238 [r=vila]

Show diffs side-by-side

added added

removed removed

Lines of Context:
14
14
# along with this program; if not, write to the Free Software
15
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
17
 
"""Test that all Tree's implement path_content_summary."""
 
17
"""Test that all Trees implement path_content_summary."""
18
18
 
19
19
import os
20
20
 
24
24
    transform,
25
25
    )
26
26
 
27
 
from bzrlib.tests import per_tree
 
27
from bzrlib.tests import (
 
28
    features,
 
29
    per_tree,
 
30
    )
 
31
from bzrlib.tests.features import (
 
32
    SymlinkFeature,
 
33
    )
28
34
 
29
35
 
30
36
class TestPathContentSummary(per_tree.TestCaseWithTree):
48
54
            self.fail("invalid size in summary: %r" % (returned_size,))
49
55
 
50
56
    def test_symlink_content_summary(self):
51
 
        self.requireFeature(tests.SymlinkFeature)
 
57
        self.requireFeature(SymlinkFeature)
52
58
        tree = self.make_branch_and_tree('tree')
53
59
        os.symlink('target', 'tree/path')
54
60
        tree.add(['path'])
56
62
        self.assertEqual(('symlink', None, None, 'target'), summary)
57
63
 
58
64
    def test_unicode_symlink_content_summary(self):
59
 
        self.requireFeature(tests.SymlinkFeature)
60
 
        self.requireFeature(tests.UnicodeFilenameFeature)
 
65
        self.requireFeature(features.SymlinkFeature)
 
66
        self.requireFeature(features.UnicodeFilenameFeature)
61
67
        tree = self.make_branch_and_tree('tree')
62
68
        os.symlink('target', u'tree/\u03b2-path'.encode(osutils._fs_enc))
63
69
        tree.add([u'\u03b2-path'])
65
71
        self.assertEqual(('symlink', None, None, 'target'), summary)
66
72
 
67
73
    def test_unicode_symlink_target_summary(self):
68
 
        self.requireFeature(tests.SymlinkFeature)
69
 
        self.requireFeature(tests.UnicodeFilenameFeature)
 
74
        self.requireFeature(features.SymlinkFeature)
 
75
        self.requireFeature(features.UnicodeFilenameFeature)
70
76
        tree = self.make_branch_and_tree('tree')
71
77
        os.symlink(u'tree/\u03b2-path'.encode(osutils._fs_enc), 'tree/link')
72
78
        tree.add(['link'])
127
133
        self.assertEqual('file', summary[0])
128
134
        self.check_content_summary_size(tree, summary, 22)
129
135
        # not executable
130
 
        if osutils.supports_executable:
131
 
            self.assertEqual(False, summary[2])
132
 
        else:
133
 
            self.assertEqual(None, summary[2])
 
136
        self.assertEqual(False, summary[2])
134
137
        # may have hash,
135
138
        self.assertSubset((summary[3],),
136
139
            (None, '0c352290ae1c26ca7f97d5b2906c4624784abd60'))
144
147
 
145
148
    def test_tree_content_summary(self):
146
149
        tree = self.make_branch_and_tree('tree')
147
 
        subtree = self.make_branch_and_tree('tree/path')
148
 
        tree.add(['path'])
149
150
        if not tree.branch.repository._format.supports_tree_reference:
150
151
            raise tests.TestNotApplicable("Tree references not supported.")
 
152
        subtree = self.make_branch_and_tree('tree/path')
 
153
        tree.add(['path'])
151
154
        summary = self._convert_tree(tree).path_content_summary('path')
152
155
        self.assertEqual(4, len(summary))
153
156
        self.assertEqual('tree-reference', summary[0])