Merge pull request #305 from anthrotype/fix_program_len

add doctests for __bool__ method in ttProgram.Program and _f_p_g_m
This commit is contained in:
Behdad Esfahbod 2015-06-25 11:46:47 -07:00
commit 16edc99440
2 changed files with 46 additions and 0 deletions

View File

@ -23,6 +23,29 @@ class table__f_p_g_m(DefaultTable.DefaultTable):
self.program = program
def __bool__(self):
"""
>>> fpgm = table__f_p_g_m()
>>> bool(fpgm)
False
>>> p = ttProgram.Program()
>>> fpgm.program = p
>>> bool(fpgm)
False
>>> bc = bytearray([0])
>>> p.fromBytecode(bc)
>>> bool(fpgm)
True
>>> p.bytecode.pop()
0
>>> bool(fpgm)
False
"""
return hasattr(self, 'program') and bool(self.program)
__nonzero__ = __bool__
if __name__ == "__main__":
import sys
import doctest
sys.exit(doctest.testmod().failed)

View File

@ -449,6 +449,29 @@ class Program(object):
self.assembly = assembly
def __bool__(self):
"""
>>> p = Program()
>>> bool(p)
False
>>> bc = array.array("B", [0])
>>> p.fromBytecode(bc)
>>> bool(p)
True
>>> p.bytecode.pop()
0
>>> bool(p)
False
>>> p = Program()
>>> asm = ['SVTCA[0]']
>>> p.fromAssembly(asm)
>>> bool(p)
True
>>> p.assembly.pop()
'SVTCA[0]'
>>> bool(p)
False
"""
return ((hasattr(self, 'assembly') and len(self.assembly) > 0) or
(hasattr(self, 'bytecode') and len(self.bytecode) > 0))