cinap_lenrekadd hg and python4bb9e2215 years agoHistory
213 lines · 3.7 KB · Python
RawDownload
"""Test module for the noddy examples Noddy 1: >>> import noddy>>> n1 = noddy.Noddy()>>> n2 = noddy.Noddy()>>> del n1>>> del n2  Noddy 2 >>> import noddy2>>> n1 = noddy2.Noddy('jim', 'fulton', 42)>>> n1.first'jim'>>> n1.last'fulton'>>> n1.number42>>> n1.name()'jim fulton'>>> n1.first = 'will'>>> n1.name()'will fulton'>>> n1.last = 'tell'>>> n1.name()'will tell'>>> del n1.first>>> n1.name()Traceback (most recent call last):...AttributeError: first>>> n1.firstTraceback (most recent call last):...AttributeError: first>>> n1.first = 'drew'>>> n1.first'drew'>>> del n1.numberTraceback (most recent call last):...TypeError: can't delete numeric/char attribute>>> n1.number=2>>> n1.number2>>> n1.first = 42>>> n1.name()'42 tell'>>> n2 = noddy2.Noddy()>>> n2.name()' '>>> n2.first''>>> n2.last''>>> del n2.first>>> n2.firstTraceback (most recent call last):...AttributeError: first>>> n2.firstTraceback (most recent call last):...AttributeError: first>>> n2.name()Traceback (most recent call last):  File "<stdin>", line 1, in ?AttributeError: first>>> n2.number0>>> n3 = noddy2.Noddy('jim', 'fulton', 'waaa')Traceback (most recent call last):  File "<stdin>", line 1, in ?TypeError: an integer is required>>> del n1>>> del n2  Noddy 3 >>> import noddy3>>> n1 = noddy3.Noddy('jim', 'fulton', 42)>>> n1 = noddy3.Noddy('jim', 'fulton', 42)>>> n1.name()'jim fulton'>>> del n1.firstTraceback (most recent call last):  File "<stdin>", line 1, in ?TypeError: Cannot delete the first attribute>>> n1.first = 42Traceback (most recent call last):  File "<stdin>", line 1, in ?TypeError: The first attribute value must be a string>>> n1.first = 'will'>>> n1.name()'will fulton'>>> n2 = noddy3.Noddy()>>> n2 = noddy3.Noddy()>>> n2 = noddy3.Noddy()>>> n3 = noddy3.Noddy('jim', 'fulton', 'waaa')Traceback (most recent call last):  File "<stdin>", line 1, in ?TypeError: an integer is required>>> del n1>>> del n2 Noddy 4 >>> import noddy4>>> n1 = noddy4.Noddy('jim', 'fulton', 42)>>> n1.first'jim'>>> n1.last'fulton'>>> n1.number42>>> n1.name()'jim fulton'>>> n1.first = 'will'>>> n1.name()'will fulton'>>> n1.last = 'tell'>>> n1.name()'will tell'>>> del n1.first>>> n1.name()Traceback (most recent call last):...AttributeError: first>>> n1.firstTraceback (most recent call last):...AttributeError: first>>> n1.first = 'drew'>>> n1.first'drew'>>> del n1.numberTraceback (most recent call last):...TypeError: can't delete numeric/char attribute>>> n1.number=2>>> n1.number2>>> n1.first = 42>>> n1.name()'42 tell'>>> n2 = noddy4.Noddy()>>> n2 = noddy4.Noddy()>>> n2 = noddy4.Noddy()>>> n2 = noddy4.Noddy()>>> n2.name()' '>>> n2.first''>>> n2.last''>>> del n2.first>>> n2.firstTraceback (most recent call last):...AttributeError: first>>> n2.firstTraceback (most recent call last):...AttributeError: first>>> n2.name()Traceback (most recent call last):  File "<stdin>", line 1, in ?AttributeError: first>>> n2.number0>>> n3 = noddy4.Noddy('jim', 'fulton', 'waaa')Traceback (most recent call last):  File "<stdin>", line 1, in ?TypeError: an integer is required  Test cyclic gc(?) >>> import gc>>> gc.disable() >>> x = []>>> l = [x]>>> n2.first = l>>> n2.first[[]]>>> l.append(n2)>>> del l>>> del n1>>> del n2>>> sys.getrefcount(x)3>>> ignore = gc.collect()>>> sys.getrefcount(x)2 >>> gc.enable()""" import osimport sysfrom distutils.util import get_platformPLAT_SPEC = "%s-%s" % (get_platform(), sys.version[0:3])src = os.path.join("build", "lib.%s" % PLAT_SPEC)sys.path.append(src) if __name__ == "__main__":    import doctest, __main__    doctest.testmod(__main__)