python-2.5.2/win32/Lib/test/test_module.py
changeset 0 ae805ac0140d
equal deleted inserted replaced
-1:000000000000 0:ae805ac0140d
       
     1 # Test the module type
       
     2 
       
     3 from test.test_support import verify, vereq, verbose, TestFailed
       
     4 
       
     5 import sys
       
     6 module = type(sys)
       
     7 
       
     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__)
       
    18 
       
    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})
       
    24 
       
    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"})
       
    30 
       
    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"})
       
    36 
       
    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)
       
    46 
       
    47 if verbose:
       
    48     print "All OK"