from unittest import TestCase import warnings from testfixtures import ( ShouldWarn, compare, ShouldRaise, ShouldNotWarn, Comparison as C ) from testfixtures.compat import PY_37_PLUS from testfixtures.shouldraise import ShouldAssert if PY_37_PLUS: comma = '' else: comma = ',' class ShouldWarnTests(TestCase): def test_warn_expected(self): with warnings.catch_warnings(record=True) as backstop: with ShouldWarn(UserWarning('foo')): warnings.warn('foo') compare(len(backstop), expected=0) def test_warn_not_expected(self): with ShouldAssert( "sequence not as expected:\n\n" "same:\n[]\n\n" "expected:\n[]\n\n" "actual:\n[UserWarning('foo'"+comma+")]" ): with warnings.catch_warnings(record=True) as backstop: with ShouldNotWarn(): warnings.warn('foo') compare(len(backstop), expected=0) def test_no_warn_expected(self): with ShouldNotWarn(): pass def test_no_warn_not_expected(self): with ShouldAssert( "sequence not as expected:\n\n" "same:\n[]\n\n" "expected:\n[<C:builtins.UserWarning>args: ('foo',)</>]" "\n\nactual:\n[]" ): with ShouldWarn(UserWarning('foo')): pass def test_filters_removed(self): with warnings.catch_warnings(): warnings.simplefilter("ignore") with ShouldWarn(UserWarning("foo")): warnings.warn('foo') def test_multiple_warnings(self): with ShouldRaise(AssertionError) as s: with ShouldWarn(UserWarning('foo')): warnings.warn('foo') warnings.warn('bar') content = str(s.raised) self.assertTrue('foo' in content) self.assertTrue('bar' in content) def test_minimal_ok(self): with ShouldWarn(UserWarning): warnings.warn('foo') def test_minimal_bad(self): with ShouldAssert( "sequence not as expected:\n\n" "same:\n[]\n\n" "expected:\n" "[<C:builtins.DeprecationWarning(failed)>wrong type</>]\n\n" "actual:\n[UserWarning('foo'"+comma+")]" ): with ShouldWarn(DeprecationWarning): warnings.warn('foo') def test_maximal_ok(self): with ShouldWarn(DeprecationWarning('foo')): warnings.warn_explicit( 'foo', DeprecationWarning, 'bar.py', 42, 'bar_module' ) def test_maximal_bad(self): with ShouldAssert( "sequence not as expected:\n\n" "same:\n[]\n\n" "expected:\n[\n" "<C:builtins.DeprecationWarning(failed)>\n" "attributes differ:\n" "'args': ('bar',) (Comparison) != ('foo',) (actual)\n" "</C:builtins.DeprecationWarning>]\n\n" "actual:\n[DeprecationWarning('foo'"+comma+")]" ): with ShouldWarn(DeprecationWarning('bar')): warnings.warn_explicit( 'foo', DeprecationWarning, 'bar.py', 42, 'bar_module' ) def test_maximal_explore(self): with ShouldWarn() as recorded: warnings.warn_explicit( 'foo', DeprecationWarning, 'bar.py', 42, 'bar_module' ) compare(len(recorded), expected=1) expected_attrs = dict( _category_name='DeprecationWarning', category=DeprecationWarning, file=None, filename='bar.py', line=None, lineno=42, message=C(DeprecationWarning('foo')), source=None ) compare(expected=C(warnings.WarningMessage, **expected_attrs), actual=recorded[0]) def test_filter_present(self): with ShouldWarn(DeprecationWarning, message="This function is deprecated."): warnings.warn("This utility is deprecated.", DeprecationWarning) warnings.warn("This function is deprecated.", DeprecationWarning) def test_filter_missing(self): with ShouldAssert( "sequence not as expected:\n\n" "same:\n[]\n\n" "expected:\n[<C:builtins.DeprecationWarning>]\n\n" "actual:\n[]" ): with ShouldWarn(DeprecationWarning, message="This function is deprecated."): warnings.warn("This utility is deprecated.", DeprecationWarning)
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__pycache__ | Folder | 0755 |
|
|
test_django | Folder | 0755 |
|
|
__init__.py | File | 64 B | 0644 |
|
configparser-read.txt | File | 832 B | 0644 |
|
configparser-write.txt | File | 775 B | 0644 |
|
directory-contents.txt | File | 739 B | 0644 |
|
sample1.py | File | 1.11 KB | 0644 |
|
sample2.py | File | 412 B | 0644 |
|
sample3.py | File | 43 B | 0644 |
|
test_compare.py | File | 61.34 KB | 0644 |
|
test_comparison.py | File | 22.17 KB | 0644 |
|
test_components.py | File | 974 B | 0644 |
|
test_date.py | File | 10.41 KB | 0644 |
|
test_datetime.py | File | 16.58 KB | 0644 |
|
test_diff.py | File | 892 B | 0644 |
|
test_generator.py | File | 467 B | 0644 |
|
test_log_capture.py | File | 7.21 KB | 0644 |
|
test_logcapture.py | File | 19.21 KB | 0644 |
|
test_mappingcomparison.py | File | 9.42 KB | 0644 |
|
test_mock.py | File | 2.19 KB | 0644 |
|
test_outputcapture.py | File | 4.25 KB | 0644 |
|
test_popen.py | File | 22.77 KB | 0644 |
|
test_popen_docs.py | File | 7.5 KB | 0644 |
|
test_rangecomparison.py | File | 5.21 KB | 0644 |
|
test_replace.py | File | 29.27 KB | 0644 |
|
test_replacer.py | File | 3.81 KB | 0644 |
|
test_roundcomparison.py | File | 4.71 KB | 0644 |
|
test_sequencecomparison.py | File | 12.08 KB | 0644 |
|
test_should_raise.py | File | 9.73 KB | 0644 |
|
test_shouldwarn.py | File | 4.51 KB | 0644 |
|
test_stringcomparison.py | File | 1.32 KB | 0644 |
|
test_sybil.py | File | 4.2 KB | 0644 |
|
test_tempdir.py | File | 2.82 KB | 0644 |
|
test_tempdirectory.py | File | 10.95 KB | 0644 |
|
test_time.py | File | 7.55 KB | 0644 |
|
test_twisted.py | File | 5.54 KB | 0644 |
|
test_wrap.py | File | 6.42 KB | 0644 |
|