124 lines
3.2 KiB
Python
124 lines
3.2 KiB
Python
#Copyright ReportLab Europe Ltd. 2000-2004
|
|
#see license.txt for license details
|
|
#history http://www.reportlab.co.uk/cgi-bin/viewcvs.cgi/public/reportlab/trunk/reportlab/test/test_lib_sequencer.py
|
|
"""Tests for the reportlab.lib.sequencer module.
|
|
"""
|
|
|
|
|
|
import sys, random
|
|
|
|
from reportlab.test import unittest
|
|
from reportlab.test.utils import makeSuiteForClasses, printLocation
|
|
from reportlab.lib.sequencer import Sequencer
|
|
|
|
|
|
class SequencerTestCase(unittest.TestCase):
|
|
"Test Sequencer usage."
|
|
|
|
def test0(self):
|
|
"Test sequencer default counter."
|
|
|
|
seq = Sequencer()
|
|
msg = 'Initial value is not zero!'
|
|
assert seq._this() == 0, msg
|
|
|
|
|
|
def test1(self):
|
|
"Test incrementing default counter."
|
|
|
|
seq = Sequencer()
|
|
|
|
for i in range(1, 101):
|
|
n = seq.next()
|
|
msg = 'Sequence value is not correct!'
|
|
assert seq._this() == n, msg
|
|
|
|
|
|
def test2(self):
|
|
"Test resetting default counter."
|
|
|
|
seq = Sequencer()
|
|
start = seq._this()
|
|
|
|
for i in range(1, 101):
|
|
n = seq.next()
|
|
|
|
seq.reset()
|
|
|
|
msg = 'Sequence value not correctly reset!'
|
|
assert seq._this() == start, msg
|
|
|
|
|
|
def test3(self):
|
|
"Test incrementing dedicated counter."
|
|
|
|
seq = Sequencer()
|
|
|
|
for i in range(1, 101):
|
|
n = seq.next('myCounter1')
|
|
msg = 'Sequence value is not correct!'
|
|
assert seq._this('myCounter1') == n, msg
|
|
|
|
|
|
def test4(self):
|
|
"Test resetting dedicated counter."
|
|
|
|
seq = Sequencer()
|
|
start = seq._this('myCounter1')
|
|
|
|
for i in range(1, 101):
|
|
n = seq.next('myCounter1')
|
|
|
|
seq.reset('myCounter1')
|
|
|
|
msg = 'Sequence value not correctly reset!'
|
|
assert seq._this('myCounter1') == start, msg
|
|
|
|
|
|
def test5(self):
|
|
"Test incrementing multiple dedicated counters."
|
|
|
|
seq = Sequencer()
|
|
startMyCounter0 = seq._this('myCounter0')
|
|
startMyCounter1 = seq._this('myCounter1')
|
|
|
|
for i in range(1, 101):
|
|
n = seq.next('myCounter0')
|
|
msg = 'Sequence value is not correct!'
|
|
assert seq._this('myCounter0') == n, msg
|
|
m = seq.next('myCounter1')
|
|
msg = 'Sequence value is not correct!'
|
|
assert seq._this('myCounter1') == m, msg
|
|
|
|
|
|
## def testRandom(self):
|
|
## "Test randomly manipulating multiple dedicated counters."
|
|
##
|
|
## seq = Sequencer()
|
|
## counterNames = ['c0', 'c1', 'c2', 'c3']
|
|
##
|
|
## # Init.
|
|
## for cn in counterNames:
|
|
## setattr(self, cn, seq._this(cn))
|
|
## msg = 'Counter start value is not correct!'
|
|
## assert seq._this(cn) == 0, msg
|
|
##
|
|
## # Increment/decrement.
|
|
## for i in range(1, 101):
|
|
## n = seq.next('myCounter0')
|
|
## msg = 'Sequence value is not correct!'
|
|
## assert seq._this('myCounter0') == n, msg
|
|
## m = seq.next('myCounter1')
|
|
## msg = 'Sequence value is not correct!'
|
|
## assert seq._this('myCounter1') == m, msg
|
|
|
|
|
|
def makeSuite():
|
|
return makeSuiteForClasses(SequencerTestCase)
|
|
|
|
|
|
#noruntests
|
|
if __name__ == "__main__":
|
|
unittest.TextTestRunner().run(makeSuite())
|
|
printLocation()
|