bpo-38155: Add __all__ to datetime module (GH-16203)
https://bugs.python.org/issue38155
diff --git a/Lib/datetime.py b/Lib/datetime.py
index 0adf1dd..6755519 100644
--- a/Lib/datetime.py
+++ b/Lib/datetime.py
@@ -4,6 +4,10 @@
time zone and DST data sources.
"""
+__all__ = ("date", "datetime", "time", "timedelta", "timezone", "tzinfo",
+ "MINYEAR", "MAXYEAR")
+
+
import time as _time
import math as _math
import sys
diff --git a/Lib/test/datetimetester.py b/Lib/test/datetimetester.py
index 32977b1..42e2cec 100644
--- a/Lib/test/datetimetester.py
+++ b/Lib/test/datetimetester.py
@@ -62,6 +62,12 @@
self.assertEqual(datetime.MINYEAR, 1)
self.assertEqual(datetime.MAXYEAR, 9999)
+ def test_all(self):
+ """Test that __all__ only points to valid attributes."""
+ all_attrs = dir(datetime_module)
+ for attr in datetime_module.__all__:
+ self.assertIn(attr, all_attrs)
+
def test_name_cleanup(self):
if '_Pure' in self.__class__.__name__:
self.skipTest('Only run for Fast C implementation')