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")
40
40
a_deprecated_dict = symbol_versioning.DeprecatedDict(
54
54
super(TestDeprecationWarnings, self).setUp()
55
55
self._warnings = []
57
57
@deprecated_method(deprecated_in((0, 7, 0)))
58
58
def deprecated_method(self):
59
59
"""Deprecated method docstring.
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.
75
72
expected_warning = (
76
"breezy.tests.test_symbol_versioning."
73
"breezy.tests.test_symbol_versioning.TestDeprecationWarnings."
77
74
"deprecated_static "
78
75
"was deprecated in version 0.7.0.", DeprecationWarning, 2)
79
76
expected_docstring = (
132
129
self.assertEqual(['one', 'foo'], a_deprecated_list)
134
131
a_deprecated_list.extend(['bar', 'baz'])
135
self.assertEqual([expected_warning]*2, self._warnings)
132
self.assertEqual([expected_warning] * 2, self._warnings)
136
133
self.assertEqual(['one', 'foo', 'bar', 'baz'], a_deprecated_list)
138
135
a_deprecated_list.insert(1, 'xxx')
139
self.assertEqual([expected_warning]*3, self._warnings)
140
self.assertEqual(['one', 'xxx', 'foo', 'bar', 'baz'], a_deprecated_list)
136
self.assertEqual([expected_warning] * 3, self._warnings)
138
['one', 'xxx', 'foo', 'bar', 'baz'], a_deprecated_list)
142
140
a_deprecated_list.remove('foo')
143
self.assertEqual([expected_warning]*4, self._warnings)
141
self.assertEqual([expected_warning] * 4, self._warnings)
144
142
self.assertEqual(['one', 'xxx', 'bar', 'baz'], a_deprecated_list)
146
144
val = a_deprecated_list.pop()
147
self.assertEqual([expected_warning]*5, self._warnings)
145
self.assertEqual([expected_warning] * 5, self._warnings)
148
146
self.assertEqual('baz', val)
149
147
self.assertEqual(['one', 'xxx', 'bar'], a_deprecated_list)
151
149
val = a_deprecated_list.pop(1)
152
self.assertEqual([expected_warning]*6, self._warnings)
150
self.assertEqual([expected_warning] * 6, self._warnings)
153
151
self.assertEqual('xxx', val)
154
152
self.assertEqual(['one', 'bar'], a_deprecated_list)
175
173
symbol_versioning.set_warning_method(old_warning_method)
178
175
def check_deprecated_callable(self, expected_warning, expected_docstring,
179
176
expected_name, expected_module,
180
177
deprecated_callable):
189
186
deprecated_callable()
190
187
self.assertEqual([expected_warning, expected_warning],
192
self.assertEqualDiff(expected_docstring, deprecated_callable.__doc__)
189
self.assertEqualDiff(expected_docstring,
190
deprecated_callable.__doc__)
193
191
self.assertEqualDiff(expected_name, deprecated_callable.__name__)
194
self.assertEqualDiff(expected_module, deprecated_callable.__module__)
192
self.assertEqualDiff(
193
expected_module, deprecated_callable.__module__)
195
194
self.assertTrue(deprecated_callable.is_deprecated)
197
196
symbol_versioning.set_warning_method(old_warning_method)
202
201
self.assertEqual(True, symbol_versioning.deprecated_passed(False))
203
202
self.assertEqual(False,
204
203
symbol_versioning.deprecated_passed(
205
symbol_versioning.DEPRECATED_PARAMETER))
204
symbol_versioning.DEPRECATED_PARAMETER))
207
206
def test_deprecation_string(self):
208
207
"""We can get a deprecation string for a method or function."""
209
self.assertEqual('breezy.tests.test_symbol_versioning.'
210
'TestDeprecationWarnings.test_deprecation_string was deprecated in '
212
symbol_versioning.deprecation_string(
208
err_message = symbol_versioning.deprecation_string(
213
209
self.test_deprecation_string,
214
deprecated_in((0, 11, 0))))
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 '
215
216
self.assertEqual('breezy.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))))
217
'deprecated in version 0.11.0.',
218
symbol_versioning.deprecation_string(
219
symbol_versioning.deprecated_function,
220
deprecated_in((0, 11, 0))))
222
223
class TestSuppressAndActivate(TestCase):