mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
issue9859: Adds a test.support.detect_api_mismatch function useful to
compare the public APIs of two modules or classes.
This commit is contained in:
parent
a8b120641b
commit
e334e3ff71
2 changed files with 58 additions and 1 deletions
|
@ -280,6 +280,48 @@ class TestSupport(unittest.TestCase):
|
|||
self.assertEqual(D["item"], 5)
|
||||
self.assertEqual(D["item"], 1)
|
||||
|
||||
def test_detect_api_mismatch(self):
|
||||
class RefClass:
|
||||
attribute1 = None
|
||||
attribute2 = None
|
||||
_hidden_attribute1 = None
|
||||
__magic_1__ = None
|
||||
|
||||
class OtherClass:
|
||||
attribute2 = None
|
||||
attribute3 = None
|
||||
__magic_1__ = None
|
||||
__magic_2__ = None
|
||||
|
||||
missing_items = support.detect_api_mismatch(RefClass, OtherClass)
|
||||
self.assertEqual({'attribute1'}, missing_items)
|
||||
|
||||
missing_items = support.detect_api_mismatch(OtherClass, RefClass)
|
||||
self.assertEqual({'attribute3', '__magic_2__'}, missing_items)
|
||||
|
||||
def test_detect_api_mismatch__ignore(self):
|
||||
class RefClass:
|
||||
attribute1 = None
|
||||
attribute2 = None
|
||||
_hidden_attribute1 = None
|
||||
__magic_1__ = None
|
||||
|
||||
class OtherClass:
|
||||
attribute2 = None
|
||||
attribute3 = None
|
||||
__magic_1__ = None
|
||||
__magic_2__ = None
|
||||
|
||||
ignore = ['attribute1', 'attribute3', '__magic_2__', 'not_in_either']
|
||||
|
||||
missing_items = support.detect_api_mismatch(RefClass, OtherClass,
|
||||
ignore=ignore)
|
||||
self.assertEqual(set(), missing_items)
|
||||
|
||||
missing_items = support.detect_api_mismatch(OtherClass, RefClass,
|
||||
ignore=ignore)
|
||||
self.assertEqual(set(), missing_items)
|
||||
|
||||
# XXX -follows a list of untested API
|
||||
# make_legacy_pyc
|
||||
# is_resource_enabled
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue