Issue #22191: Fix warnings.__all__.

Thanks to Jon Poler for the patch.
This commit is contained in:
Brett Cannon 2014-08-22 10:44:47 -04:00
parent a969ae2e11
commit 14ad5319d9
4 changed files with 24 additions and 1 deletions

View File

@ -61,6 +61,25 @@ class BaseTest:
sys.modules['warnings'] = original_warnings
super(BaseTest, self).tearDown()
class PublicAPITests(BaseTest):
"""Ensures that the correct values are exposed in the
public API.
"""
def test_module_all_attribute(self):
self.assertTrue(hasattr(self.module, '__all__'))
target_api = ["warn", "warn_explicit", "showwarning",
"formatwarning", "filterwarnings", "simplefilter",
"resetwarnings", "catch_warnings"]
self.assertSetEqual(set(self.module.__all__),
set(target_api))
class CPublicAPITests(PublicAPITests, unittest.TestCase):
module = c_warnings
class PyPublicAPITests(PublicAPITests, unittest.TestCase):
module = py_warnings
class FilterTests(BaseTest):

View File

@ -2,7 +2,8 @@
import sys
__all__ = ["warn", "showwarning", "formatwarning", "filterwarnings",
__all__ = ["warn", "warn_explicit", "showwarning",
"formatwarning", "filterwarnings", "simplefilter",
"resetwarnings", "catch_warnings"]

View File

@ -1054,6 +1054,7 @@ Antoine Pitrou
Jean-François Piéronne
Oleg Plakhotnyuk
Remi Pointel
Jon Poler
Ariel Poliak
Guilherme Polo
Illia Polosukhin

View File

@ -27,6 +27,8 @@ Core and Builtins
Library
-------
-- Issue #22191: Fix warnings.__all__.
- Issue #15696: Add a __sizeof__ implementation for mmap objects on Windows.
- Issue #22068: Avoided reference loops with Variables and Fonts in Tkinter.