diff -r acb30ed7eceb Lib/test/test_warnings.py --- a/Lib/test/test_warnings.py Wed Aug 13 09:36:06 2014 +0300 +++ b/Lib/test/test_warnings.py Fri Aug 15 17:17:10 2014 -0400 @@ -61,6 +61,25 @@ 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): diff -r acb30ed7eceb Lib/warnings.py --- a/Lib/warnings.py Wed Aug 13 09:36:06 2014 +0300 +++ b/Lib/warnings.py Fri Aug 15 17:17:10 2014 -0400 @@ -2,7 +2,8 @@ import sys -__all__ = ["warn", "showwarning", "formatwarning", "filterwarnings", +__all__ = ["warn", "warn_explicit", "showwarning", + "formatwarning", "filterwarnings", "simplefilter", "resetwarnings", "catch_warnings"]