diff options
Diffstat (limited to 'Doc/includes/test.py')
-rw-r--r-- | Doc/includes/test.py | 213 |
1 files changed, 213 insertions, 0 deletions
diff --git a/Doc/includes/test.py b/Doc/includes/test.py new file mode 100644 index 0000000..7ebf46a --- /dev/null +++ b/Doc/includes/test.py @@ -0,0 +1,213 @@ +"""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__) |