Test for the fix I just checked in to moduleobject.c.
Bugfix candidate.
diff --git a/Lib/test/test_descr.py b/Lib/test/test_descr.py
index a640bb4..7e48884 100644
--- a/Lib/test/test_descr.py
+++ b/Lib/test/test_descr.py
@@ -2730,6 +2730,17 @@
b.a = a
z = deepcopy(a) # This blew up before
+def modules():
+ if verbose: print "Testing uninitialized module objects..."
+ from types import ModuleType as M
+ m = M.__new__(M)
+ str(m)
+ vereq(hasattr(m, "__name__"), 0)
+ vereq(hasattr(m, "__file__"), 0)
+ vereq(hasattr(m, "foo"), 0)
+ vereq(m.__dict__, None)
+ m.foo = 1
+ vereq(m.__dict__, {"foo": 1})
def test_main():
class_docstrings()
@@ -2786,6 +2797,7 @@
hashinherit()
strops()
deepcopyrecursive()
+ modules()
if verbose: print "All OK"
if __name__ == "__main__":