/Doc/includes/test.py
http://unladen-swallow.googlecode.com/ · Python · 213 lines · 194 code · 5 blank · 14 comment · 0 complexity · d37dc1dfd925dc025b4c5e16679d8b8e MD5 · raw file
- """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__)