|
2 | 2 | """
|
3 | 3 |
|
4 | 4 | import warnings
|
| 5 | +from distutils.version import LooseVersion |
5 | 6 |
|
6 | 7 | from nose.tools import (assert_true, assert_false, assert_raises,
|
7 | 8 | assert_equal, assert_not_equal)
|
8 | 9 |
|
9 |
| -from ..deprecated import ModuleProxy, FutureWarningMixin |
| 10 | +from .. import deprecated |
| 11 | +from ..deprecated import (ModuleProxy, FutureWarningMixin, _ensure_cr, |
| 12 | + _add_dep_doc, deprecate_with_version, |
| 13 | + ExpiredDeprecationError) |
| 14 | + |
| 15 | +_ORIG_PKG_VERSION = deprecated.PKG_VERSION |
| 16 | + |
| 17 | +def setup(): |
| 18 | + deprecated.PKG_VERSION = LooseVersion('2.0') |
| 19 | + |
| 20 | + |
| 21 | +def teardown(): |
| 22 | + deprecated.PKG_VERSION = _ORIG_PKG_VERSION |
10 | 23 |
|
11 | 24 |
|
12 | 25 | def test_module_proxy():
|
@@ -47,3 +60,67 @@ class E(FutureWarningMixin, C):
|
47 | 60 | warn = warns.pop(0)
|
48 | 61 | assert_equal(warn.category, FutureWarning)
|
49 | 62 | assert_equal(str(warn.message), 'Oh no, not this one')
|
| 63 | + |
| 64 | + |
| 65 | +def test__ensure_cr(): |
| 66 | + # Make sure text ends with carriage return |
| 67 | + assert_equal(_ensure_cr(' foo'), ' foo\n') |
| 68 | + assert_equal(_ensure_cr(' foo\n'), ' foo\n') |
| 69 | + assert_equal(_ensure_cr(' foo '), ' foo\n') |
| 70 | + assert_equal(_ensure_cr('foo '), 'foo\n') |
| 71 | + assert_equal(_ensure_cr('foo \n bar'), 'foo \n bar\n') |
| 72 | + assert_equal(_ensure_cr('foo \n\n'), 'foo\n') |
| 73 | + |
| 74 | + |
| 75 | +def test__add_dep_doc(): |
| 76 | + # Test utility function to add deprecation message to docstring |
| 77 | + assert_equal(_add_dep_doc('', 'foo'), 'foo\n') |
| 78 | + assert_equal(_add_dep_doc('bar', 'foo'), 'bar\n\nfoo\n') |
| 79 | + assert_equal(_add_dep_doc(' bar', 'foo'), ' bar\n\nfoo\n') |
| 80 | + assert_equal(_add_dep_doc(' bar', 'foo\n'), ' bar\n\nfoo\n') |
| 81 | + assert_equal(_add_dep_doc('bar\n\n', 'foo'), 'bar\n\nfoo\n') |
| 82 | + assert_equal(_add_dep_doc('bar\n \n', 'foo'), 'bar\n\nfoo\n') |
| 83 | + assert_equal(_add_dep_doc(' bar\n\nSome explanation', 'foo\nbaz'), |
| 84 | + ' bar\n\nfoo\nbaz\n\nSome explanation\n') |
| 85 | + assert_equal(_add_dep_doc(' bar\n\n Some explanation', 'foo\nbaz'), |
| 86 | + ' bar\n \n foo\n baz\n \n Some explanation\n') |
| 87 | + |
| 88 | + |
| 89 | +def test_deprecate_with_version(): |
| 90 | + # Test function deprecation |
| 91 | + |
| 92 | + def func_no_doc(): pass |
| 93 | + |
| 94 | + def func_doc(): "A docstring" |
| 95 | + |
| 96 | + def func_doc_long(): "A docstring\n\n Some text" |
| 97 | + |
| 98 | + func = deprecate_with_version('foo')(func_no_doc) |
| 99 | + assert_equal(func.__doc__, 'foo\n') |
| 100 | + func = deprecate_with_version('foo')(func_doc) |
| 101 | + assert_equal(func.__doc__, 'A docstring\n\nfoo\n') |
| 102 | + func = deprecate_with_version('foo')(func_doc_long) |
| 103 | + assert_equal(func.__doc__, 'A docstring\n \n foo\n \n Some text\n') |
| 104 | + |
| 105 | + func = deprecate_with_version('foo', '1.1')(func_no_doc) |
| 106 | + assert_equal(func.__doc__, 'foo\n\n* deprecated from version: 1.1\n') |
| 107 | + func = deprecate_with_version('foo', until='2.4')(func_no_doc) |
| 108 | + assert_equal(func.__doc__, |
| 109 | + 'foo\n\n* Will raise a {} as of version: 2.4\n' |
| 110 | + .format(ExpiredDeprecationError)) |
| 111 | + func = deprecate_with_version('foo', until='1.8')(func_no_doc) |
| 112 | + assert_equal(func.__doc__, |
| 113 | + 'foo\n\n* Raises a {} as of version: 1.8\n' |
| 114 | + .format(ExpiredDeprecationError)) |
| 115 | + func = deprecate_with_version('foo', '1.2', '1.8')(func_no_doc) |
| 116 | + assert_equal(func.__doc__, |
| 117 | + 'foo\n\n* deprecated from version: 1.2\n' |
| 118 | + '* Raises a {} as of version: 1.8\n' |
| 119 | + .format(ExpiredDeprecationError)) |
| 120 | + func = deprecate_with_version('foo', '1.2', '1.8')(func_doc_long) |
| 121 | + assert_equal(func.__doc__, |
| 122 | + 'A docstring\n \n foo\n \n' |
| 123 | + ' * deprecated from version: 1.2\n' |
| 124 | + ' * Raises a {} as of version: 1.8\n \n' |
| 125 | + ' Some text\n' |
| 126 | + .format(ExpiredDeprecationError)) |
0 commit comments