"""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__)
"""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.number
42
>>> 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.first
Traceback (most recent call last):
...
AttributeError: first
>>> n1.first = 'drew'
>>> n1.first
'drew'
>>> del n1.number
Traceback (most recent call last):
...
TypeError: can't delete numeric/char attribute
>>> n1.number=2
>>> n1.number
2
>>> n1.first = 42
>>> n1.name()
'42 tell'
>>> n2 = noddy2.Noddy()
>>> n2.name()
' '
>>> n2.first
''
>>> n2.last
''
>>> del n2.first
>>> n2.first
Traceback (most recent call last):
...
AttributeError: first
>>> n2.first
Traceback (most recent call last):
...
AttributeError: first
>>> n2.name()
Traceback (most recent call last):
File "<stdin>", line 1, in ?
AttributeError: first
>>> n2.number
0
>>> 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.first
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: Cannot delete the first attribute
>>> n1.first = 42
Traceback (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.number
42
>>> 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.first
Traceback (most recent call last):
...
AttributeError: first
>>> n1.first = 'drew'
>>> n1.first
'drew'
>>> del n1.number
Traceback (most recent call last):
...
TypeError: can't delete numeric/char attribute
>>> n1.number=2
>>> n1.number
2
>>> 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.first
Traceback (most recent call last):
...
AttributeError: first
>>> n2.first
Traceback (most recent call last):
...
AttributeError: first
>>> n2.name()
Traceback (most recent call last):
File "<stdin>", line 1, in ?
AttributeError: first
>>> n2.number
0
>>> 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 os
import sys
from distutils.util import get_platform
PLAT_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__)