This commit was manufactured by cvs2svn to create tag 'r23b1-mac'.
[python/dscho.git] / Lib / test / test_module.py
blob2b35a531afd5e7baae7d95fcec05f9824b69876a
1 # Test the module type
3 from test.test_support import verify, vereq, verbose, TestFailed
5 import sys
6 module = type(sys)
8 # An uninitialized module has no __dict__ or __name__, and __doc__ is None
9 foo = module.__new__(module)
10 verify(foo.__dict__ is None)
11 try:
12 s = foo.__name__
13 except AttributeError:
14 pass
15 else:
16 raise TestFailed, "__name__ = %s" % repr(s)
17 vereq(foo.__doc__, module.__doc__)
19 # Regularly initialized module, no docstring
20 foo = module("foo")
21 vereq(foo.__name__, "foo")
22 vereq(foo.__doc__, None)
23 vereq(foo.__dict__, {"__name__": "foo", "__doc__": None})
25 # ASCII docstring
26 foo = module("foo", "foodoc")
27 vereq(foo.__name__, "foo")
28 vereq(foo.__doc__, "foodoc")
29 vereq(foo.__dict__, {"__name__": "foo", "__doc__": "foodoc"})
31 # Unicode docstring
32 foo = module("foo", u"foodoc\u1234")
33 vereq(foo.__name__, "foo")
34 vereq(foo.__doc__, u"foodoc\u1234")
35 vereq(foo.__dict__, {"__name__": "foo", "__doc__": u"foodoc\u1234"})
37 # Reinitialization should not replace the __dict__
38 foo.bar = 42
39 d = foo.__dict__
40 foo.__init__("foo", "foodoc")
41 vereq(foo.__name__, "foo")
42 vereq(foo.__doc__, "foodoc")
43 vereq(foo.bar, 42)
44 vereq(foo.__dict__, {"__name__": "foo", "__doc__": "foodoc", "bar": 42})
45 verify(foo.__dict__ is d)
47 if verbose:
48 print "All OK"