/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to brzlib/tests/test_symbol_versioning.py

  • Committer: Jelmer Vernooij
  • Date: 2017-05-21 12:41:27 UTC
  • mto: This revision was merged to the branch mainline in revision 6623.
  • Revision ID: jelmer@jelmer.uk-20170521124127-iv8etg0vwymyai6y
s/bzr/brz/ in apport config.

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
 
19
19
import warnings
20
20
 
21
 
from breezy import symbol_versioning
22
 
from breezy.symbol_versioning import (
 
21
from brzlib import symbol_versioning
 
22
from brzlib.symbol_versioning import (
23
23
    deprecated_function,
24
24
    deprecated_in,
25
25
    deprecated_method,
26
26
    )
27
 
from breezy.tests import TestCase
 
27
from brzlib.tests import TestCase
28
28
 
29
29
 
30
30
@deprecated_function(deprecated_in((0, 7, 0)))
34
34
 
35
35
 
36
36
a_deprecated_list = symbol_versioning.deprecated_list(deprecated_in((0, 9, 0)),
37
 
                                                      'a_deprecated_list', ['one'], extra="Don't use me")
 
37
    'a_deprecated_list', ['one'], extra="Don't use me")
38
38
 
39
39
 
40
40
a_deprecated_dict = symbol_versioning.DeprecatedDict(
53
53
    def setUp(self):
54
54
        super(TestDeprecationWarnings, self).setUp()
55
55
        self._warnings = []
56
 
 
 
56
    
57
57
    @deprecated_method(deprecated_in((0, 7, 0)))
58
58
    def deprecated_method(self):
59
59
        """Deprecated method docstring.
69
69
        return 1
70
70
 
71
71
    def test_deprecated_static(self):
 
72
        # XXX: The results are not quite right because the class name is not
 
73
        # shown - however it is enough to give people a good indication of
 
74
        # where the problem is.
72
75
        expected_warning = (
73
 
            "breezy.tests.test_symbol_versioning.TestDeprecationWarnings."
 
76
            "brzlib.tests.test_symbol_versioning."
74
77
            "deprecated_static "
75
78
            "was deprecated in version 0.7.0.", DeprecationWarning, 2)
76
79
        expected_docstring = (
81
84
        self.check_deprecated_callable(
82
85
            expected_warning, expected_docstring,
83
86
            "deprecated_static",
84
 
            "breezy.tests.test_symbol_versioning",
 
87
            "brzlib.tests.test_symbol_versioning",
85
88
            self.deprecated_static)
86
89
 
87
90
    def test_deprecated_method(self):
88
91
        expected_warning = (
89
 
            "breezy.tests.test_symbol_versioning."
 
92
            "brzlib.tests.test_symbol_versioning."
90
93
            "TestDeprecationWarnings.deprecated_method "
91
94
            "was deprecated in version 0.7.0.", DeprecationWarning, 2)
92
95
        expected_docstring = (
98
101
            '        ')
99
102
        self.check_deprecated_callable(expected_warning, expected_docstring,
100
103
                                       "deprecated_method",
101
 
                                       "breezy.tests.test_symbol_versioning",
 
104
                                       "brzlib.tests.test_symbol_versioning",
102
105
                                       self.deprecated_method)
103
106
 
104
107
    def test_deprecated_function(self):
105
108
        expected_warning = (
106
 
            "breezy.tests.test_symbol_versioning.sample_deprecated_function "
 
109
            "brzlib.tests.test_symbol_versioning.sample_deprecated_function "
107
110
            "was deprecated in version 0.7.0.", DeprecationWarning, 2)
108
111
        expected_docstring = ('Deprecated function docstring.\n'
109
112
                              '\n'
111
114
                              )
112
115
        self.check_deprecated_callable(expected_warning, expected_docstring,
113
116
                                       "sample_deprecated_function",
114
 
                                       "breezy.tests.test_symbol_versioning",
 
117
                                       "brzlib.tests.test_symbol_versioning",
115
118
                                       sample_deprecated_function)
116
119
 
117
120
    def test_deprecated_list(self):
129
132
            self.assertEqual(['one', 'foo'], a_deprecated_list)
130
133
 
131
134
            a_deprecated_list.extend(['bar', 'baz'])
132
 
            self.assertEqual([expected_warning] * 2, self._warnings)
 
135
            self.assertEqual([expected_warning]*2, self._warnings)
133
136
            self.assertEqual(['one', 'foo', 'bar', 'baz'], a_deprecated_list)
134
137
 
135
138
            a_deprecated_list.insert(1, 'xxx')
136
 
            self.assertEqual([expected_warning] * 3, self._warnings)
137
 
            self.assertEqual(
138
 
                ['one', 'xxx', 'foo', 'bar', 'baz'], a_deprecated_list)
 
139
            self.assertEqual([expected_warning]*3, self._warnings)
 
140
            self.assertEqual(['one', 'xxx', 'foo', 'bar', 'baz'], a_deprecated_list)
139
141
 
140
142
            a_deprecated_list.remove('foo')
141
 
            self.assertEqual([expected_warning] * 4, self._warnings)
 
143
            self.assertEqual([expected_warning]*4, self._warnings)
142
144
            self.assertEqual(['one', 'xxx', 'bar', 'baz'], a_deprecated_list)
143
145
 
144
146
            val = a_deprecated_list.pop()
145
 
            self.assertEqual([expected_warning] * 5, self._warnings)
 
147
            self.assertEqual([expected_warning]*5, self._warnings)
146
148
            self.assertEqual('baz', val)
147
149
            self.assertEqual(['one', 'xxx', 'bar'], a_deprecated_list)
148
150
 
149
151
            val = a_deprecated_list.pop(1)
150
 
            self.assertEqual([expected_warning] * 6, self._warnings)
 
152
            self.assertEqual([expected_warning]*6, self._warnings)
151
153
            self.assertEqual('xxx', val)
152
154
            self.assertEqual(['one', 'bar'], a_deprecated_list)
153
155
        finally:
172
174
        finally:
173
175
            symbol_versioning.set_warning_method(old_warning_method)
174
176
 
 
177
 
175
178
    def check_deprecated_callable(self, expected_warning, expected_docstring,
176
179
                                  expected_name, expected_module,
177
180
                                  deprecated_callable):
186
189
            deprecated_callable()
187
190
            self.assertEqual([expected_warning, expected_warning],
188
191
                             self._warnings)
189
 
            self.assertEqualDiff(expected_docstring,
190
 
                                 deprecated_callable.__doc__)
 
192
            self.assertEqualDiff(expected_docstring, deprecated_callable.__doc__)
191
193
            self.assertEqualDiff(expected_name, deprecated_callable.__name__)
192
 
            self.assertEqualDiff(
193
 
                expected_module, deprecated_callable.__module__)
 
194
            self.assertEqualDiff(expected_module, deprecated_callable.__module__)
194
195
            self.assertTrue(deprecated_callable.is_deprecated)
195
196
        finally:
196
197
            symbol_versioning.set_warning_method(old_warning_method)
201
202
        self.assertEqual(True, symbol_versioning.deprecated_passed(False))
202
203
        self.assertEqual(False,
203
204
                         symbol_versioning.deprecated_passed(
204
 
                             symbol_versioning.DEPRECATED_PARAMETER))
 
205
                            symbol_versioning.DEPRECATED_PARAMETER))
205
206
 
206
207
    def test_deprecation_string(self):
207
208
        """We can get a deprecation string for a method or function."""
208
 
        err_message = symbol_versioning.deprecation_string(
 
209
        self.assertEqual('brzlib.tests.test_symbol_versioning.'
 
210
            'TestDeprecationWarnings.test_deprecation_string was deprecated in '
 
211
            'version 0.11.0.',
 
212
            symbol_versioning.deprecation_string(
209
213
            self.test_deprecation_string,
210
 
            deprecated_in((0, 11, 0)))
211
 
        self.assertEqual(err_message,
212
 
                         'breezy.tests.test_symbol_versioning.TestDeprecationWarnings.'
213
 
                         'test_deprecation_string was deprecated in '
214
 
                         'version 0.11.0.')
215
 
 
216
 
        self.assertEqual('breezy.symbol_versioning.deprecated_function was '
217
 
                         'deprecated in version 0.11.0.',
218
 
                         symbol_versioning.deprecation_string(
219
 
                             symbol_versioning.deprecated_function,
220
 
                             deprecated_in((0, 11, 0))))
 
214
            deprecated_in((0, 11, 0))))
 
215
        self.assertEqual('brzlib.symbol_versioning.deprecated_function was '
 
216
            'deprecated in version 0.11.0.',
 
217
            symbol_versioning.deprecation_string(
 
218
                symbol_versioning.deprecated_function,
 
219
                deprecated_in((0, 11, 0))))
221
220
 
222
221
 
223
222
class TestSuppressAndActivate(TestCase):
225
224
    def setUp(self):
226
225
        super(TestSuppressAndActivate, self).setUp()
227
226
        existing_filters = list(warnings.filters)
228
 
 
229
227
        def restore():
230
228
            warnings.filters[:] = existing_filters
231
229
        self.addCleanup(restore)