~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_filters.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:
1
 
# Copyright (C) 2008 Canonical Ltd
 
1
# Copyright (C) 2008, 2009, 2012, 2016 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
24
24
    _get_filter_stack_for,
25
25
    _get_registered_names,
26
26
    internal_size_sha_file_byname,
27
 
    register_filter_stack_map,
28
27
    )
29
28
from bzrlib.osutils import sha_string
30
29
from bzrlib.tests import TestCase, TestCaseInTempDir
59
58
 
60
59
    def test_filter_context_with_path(self):
61
60
        ctx = ContentFilterContext('foo/bar')
62
 
        self.assertEquals('foo/bar', ctx.relpath())
 
61
        self.assertEqual('foo/bar', ctx.relpath())
63
62
 
64
63
 
65
64
class TestFilteredInput(TestCase):
114
113
    def _register_map(self, pref, stk1, stk2):
115
114
        def stk_lookup(key):
116
115
            return {'v1': stk1, 'v2': stk2}.get(key)
117
 
        register_filter_stack_map(pref, stk_lookup)
 
116
        filters.filter_stacks_registry.register(pref, stk_lookup)
118
117
 
119
118
    def test_filter_stack_maps(self):
120
119
        # Save the current registry
121
120
        original_registry = filters._reset_registry()
122
 
        try:
123
 
            # Test registration
124
 
            a_stack = [ContentFilter('b', 'c')]
125
 
            z_stack = [ContentFilter('y', 'x'), ContentFilter('w', 'v')]
126
 
            self._register_map('foo', a_stack, z_stack)
127
 
            self.assertEqual(['foo'], _get_registered_names())
128
 
            self._register_map('bar', z_stack, a_stack)
129
 
            self.assertEqual(['bar', 'foo'], _get_registered_names())
130
 
            # Test re-registration raises an error
131
 
            self.assertRaises(errors.BzrError, self._register_map,
132
 
                'foo', [], [])
133
 
        finally:
134
 
            # Restore the real registry
135
 
            filters._reset_registry(original_registry)
 
121
        self.addCleanup(filters._reset_registry, original_registry)
 
122
        # Test registration
 
123
        a_stack = [ContentFilter('b', 'c')]
 
124
        z_stack = [ContentFilter('y', 'x'), ContentFilter('w', 'v')]
 
125
        self._register_map('foo', a_stack, z_stack)
 
126
        self.assertEqual(['foo'], _get_registered_names())
 
127
        self._register_map('bar', z_stack, a_stack)
 
128
        self.assertEqual(['bar', 'foo'], _get_registered_names())
 
129
        # Test re-registration raises an error
 
130
        self.assertRaises(KeyError, self._register_map,
 
131
            'foo', [], [])
136
132
 
137
133
    def test_get_filter_stack_for(self):
138
134
        # Save the current registry
139
135
        original_registry = filters._reset_registry()
140
 
        try:
141
 
            # Test filter stack lookup
142
 
            a_stack = [ContentFilter('b', 'c')]
143
 
            d_stack = [ContentFilter('d', 'D')]
144
 
            z_stack = [ContentFilter('y', 'x'), ContentFilter('w', 'v')]
145
 
            self._register_map('foo', a_stack, z_stack)
146
 
            self._register_map('bar', d_stack, z_stack)
147
 
            prefs = (('foo','v1'),)
148
 
            self.assertEqual(a_stack, _get_filter_stack_for(prefs))
149
 
            prefs = (('foo','v2'),)
150
 
            self.assertEqual(z_stack, _get_filter_stack_for(prefs))
151
 
            prefs = (('foo','v1'), ('bar','v1'))
152
 
            self.assertEqual(a_stack + d_stack, _get_filter_stack_for(prefs))
153
 
            # Test an unknown preference
154
 
            prefs = (('baz','v1'),)
155
 
            self.assertEqual([], _get_filter_stack_for(prefs))
156
 
            # Test an unknown value
157
 
            prefs = (('foo','v3'),)
158
 
            self.assertEqual([], _get_filter_stack_for(prefs))
159
 
            # Test a value of None is skipped
160
 
            prefs = (('foo',None), ('bar', 'v1'))
161
 
            self.assertEqual(d_stack, _get_filter_stack_for(prefs))
162
 
        finally:
163
 
            # Restore the real registry
164
 
            filters._reset_registry(original_registry)
 
136
        self.addCleanup(filters._reset_registry, original_registry)
 
137
        # Test filter stack lookup
 
138
        a_stack = [ContentFilter('b', 'c')]
 
139
        d_stack = [ContentFilter('d', 'D')]
 
140
        z_stack = [ContentFilter('y', 'x'), ContentFilter('w', 'v')]
 
141
        self._register_map('foo', a_stack, z_stack)
 
142
        self._register_map('bar', d_stack, z_stack)
 
143
        prefs = (('foo','v1'),)
 
144
        self.assertEqual(a_stack, _get_filter_stack_for(prefs))
 
145
        prefs = (('foo','v2'),)
 
146
        self.assertEqual(z_stack, _get_filter_stack_for(prefs))
 
147
        prefs = (('foo','v1'), ('bar','v1'))
 
148
        self.assertEqual(a_stack + d_stack, _get_filter_stack_for(prefs))
 
149
        # Test an unknown preference
 
150
        prefs = (('baz','v1'),)
 
151
        self.assertEqual([], _get_filter_stack_for(prefs))
 
152
        # Test an unknown value
 
153
        prefs = (('foo','v3'),)
 
154
        self.assertEqual([], _get_filter_stack_for(prefs))
 
155
        # Test a value of None is skipped
 
156
        prefs = (('foo',None), ('bar', 'v1'))
 
157
        self.assertEqual(d_stack, _get_filter_stack_for(prefs))