# HG changeset patch # Parent a5cc958861e4638c5aa6ebdbf5981643bcf3c45d diff -r a5cc958861e4 Lib/test/test_urlparse.py --- a/Lib/test/test_urlparse.py Mon Mar 30 20:29:55 2015 -0700 +++ b/Lib/test/test_urlparse.py Tue Mar 31 04:22:36 2015 +0000 @@ -840,6 +840,22 @@ quoter = urllib.parse.Quoter(urllib.parse._ALWAYS_SAFE) self.assertIn('Quoter', repr(quoter)) + def test_all(self): + expected = [] + undocumented = { + 'splitattr', 'splithost', 'splitnport', 'splitpasswd', + 'splitport', 'splitquery', 'splittag', 'splittype', 'splituser', + 'splitvalue', + 'Quoter', 'ResultBase', 'clear_cache', 'to_bytes', 'unwrap', + } + for name in dir(urllib.parse): + if name.startswith('_') or name in undocumented: + continue + object = getattr(urllib.parse, name) + if getattr(object, '__module__', None) == 'urllib.parse': + expected.append(name) + self.assertCountEqual(urllib.parse.__all__, expected) + class Utility_Tests(unittest.TestCase): """Testcase to test the various utility functions in the urllib.""" diff -r a5cc958861e4 Lib/urllib/parse.py --- a/Lib/urllib/parse.py Mon Mar 30 20:29:55 2015 -0700 +++ b/Lib/urllib/parse.py Tue Mar 31 04:22:36 2015 +0000 @@ -34,7 +34,9 @@ __all__ = ["urlparse", "urlunparse", "urljoin", "urldefrag", "urlsplit", "urlunsplit", "urlencode", "parse_qs", "parse_qsl", "quote", "quote_plus", "quote_from_bytes", - "unquote", "unquote_plus", "unquote_to_bytes"] + "unquote", "unquote_plus", "unquote_to_bytes", + "DefragResult", "ParseResult", "SplitResult", + "DefragResultBytes", "ParseResultBytes", "SplitResultBytes"] # A classification of schemes ('' means apply by default) uses_relative = ['ftp', 'http', 'gopher', 'nntp', 'imap',