Martin Panter added the comment:
Here is a brainstorm of alternatives that don’t require passing “self” into a
helper function. But IMO the current proposal that does pass “self” is better.
* Passive expected_module_api() function, and manually check the return value.
Precedent: support.detect_api_mismatch().
def test_all(self): # In class test.test_tarfile.MiscTest
blacklist = {"bltn_open", ...}
possible_exports = support.expected_module_api(tarfile, ignore=blacklist)
self.assertCountEqual(ftplib.__all__, possible_exports)
* ModuleApiTestBase class. Subclass it to use it:
class ExportsTest(support.ModuleApiTestBase): # In module test.test_tarfile
module = tarfile
ignore = {"bltn_open", ...}
* Raise AssertionError directly in case of failure. No automatic error message
showing the different names though. Precedents: support.run_doctest(),
.check_warnings(), script_helper.assert_python_ok(), _failure().
* Make a temporary internal TestCase instance:
def check__all__(module, etc):
expected = ...
...
TestCase().assertCountEqual(module.__all__, expected)
----------
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue23883>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com