mirror of
https://github.com/rdkit/rdkit.git
synced 2026-06-05 22:04:27 +08:00
127 lines
2.6 KiB
Python
Executable File
127 lines
2.6 KiB
Python
Executable File
# $Id$
|
|
#
|
|
# Copyright (c) 2001-2006, Greg Landrum and Rational Discovery LLC,
|
|
#
|
|
# @@ All Rights Reserved @@
|
|
#
|
|
""" unit testing code for the logger
|
|
|
|
"""
|
|
import unittest
|
|
import Logger
|
|
import re
|
|
class Foo:
|
|
""" a simple class
|
|
"""
|
|
def __init__(self,aVal):
|
|
self.a = aVal
|
|
|
|
def method1(self,a,b,c='foo'):
|
|
return 'method1'
|
|
|
|
def method2(self):
|
|
return 'method2'
|
|
|
|
def test1(self):
|
|
return 'test1'
|
|
|
|
def test2(self):
|
|
return 'test2'
|
|
|
|
|
|
class TestCase(unittest.TestCase):
|
|
def testBasic(self):
|
|
l = Logger.Logger(Foo,7)
|
|
try:
|
|
l.method1(1,2)
|
|
l.method1(1,2,c='grm')
|
|
l.method2()
|
|
l.method1(7,6,'pizza')
|
|
l.b = 3
|
|
l.method2()
|
|
except:
|
|
ok = 0
|
|
else:
|
|
ok = 1
|
|
assert ok,'basic calls failed'
|
|
|
|
assert l.b == 3, '__setattr__ failed'
|
|
res = l._LoggerGetLog()
|
|
assert len(res) == 6, 'length of log (%d) wrong'%(len(res))
|
|
|
|
def testPlayback(self):
|
|
l = Logger.Logger(Foo,7)
|
|
try:
|
|
l.method1(1,2)
|
|
l.method1(1,2,c='grm')
|
|
l.method2()
|
|
l.method1(7,6,'pizza')
|
|
l.b = 3
|
|
l.method2()
|
|
except:
|
|
ok = 0
|
|
else:
|
|
ok = 1
|
|
assert ok,'basic calls failed'
|
|
|
|
f = Foo(7)
|
|
replay = Logger.replay(l._LoggerGetLog(),f)
|
|
assert replay==['method1','method1','method2','method1',3,'method2'],\
|
|
'replay results (%s) wrong'%(str(replay))
|
|
assert f.b == 3, '__setattr__ failed'
|
|
|
|
def testFlush(self):
|
|
l = Logger.Logger(Foo,7,loggerFlushCommand='method2')
|
|
try:
|
|
l.method1(1,2)
|
|
l.method1(1,2,c='grm')
|
|
l.method1(7,6,'pizza')
|
|
l.b = 3
|
|
except:
|
|
ok = 0
|
|
else:
|
|
ok = 1
|
|
assert ok,'basic calls failed'
|
|
|
|
res = l._LoggerGetLog()
|
|
assert len(res)==4, 'length of log (%d) wrong'%(len(res))
|
|
|
|
l.method2()
|
|
res = l._LoggerGetLog()
|
|
assert len(res)==0, 'length of log (%d) wrong'%(len(res))
|
|
|
|
def testIgnore(self):
|
|
e1 = re.compile('test*')
|
|
l = Logger.Logger(Foo,7,loggerIgnore=[e1,'method2'])
|
|
try:
|
|
l.method1(1,2)
|
|
l.method2()
|
|
l.test1()
|
|
l.test2()
|
|
l.method1(1,2,c='grm')
|
|
l.method1(7,6,'pizza')
|
|
l.b = 3
|
|
except:
|
|
ok = 0
|
|
else:
|
|
ok = 1
|
|
assert ok,'basic calls failed'
|
|
|
|
res = l._LoggerGetLog()
|
|
assert len(res)==4, 'length of log (%d) wrong'%(len(res))
|
|
|
|
|
|
def TestSuite():
|
|
suite = unittest.TestSuite()
|
|
suite.addTest(TestCase('testBasic'))
|
|
suite.addTest(TestCase('testPlayback'))
|
|
suite.addTest(TestCase('testFlush'))
|
|
suite.addTest(TestCase('testIgnore'))
|
|
return suite
|
|
|
|
|
|
if __name__ == '__main__':
|
|
suite = TestSuite()
|
|
unittest.TextTestRunner().run(suite)
|
|
|