annotate tests/objects.py @ 55:49f88cde6219

make the test wrapper more interesting (and testable)
author Jeff Hammel <jhammel@mozilla.com>
date Wed, 08 Jun 2011 23:35:56 -0700
parents f6616a5f468f
children cb1898f8c72a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11
ff272dcd5cd8 we have a passing test
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
1 """
ff272dcd5cd8 we have a passing test
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
2 test objects
ff272dcd5cd8 we have a passing test
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
3 """
ff272dcd5cd8 we have a passing test
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
4
ff272dcd5cd8 we have a passing test
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
5 def stringsort(*strings):
ff272dcd5cd8 we have a passing test
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
6 return ''.join(sorted(''.join(strings)))
13
eb81d6943f2e add another dummy object
Jeff Hammel <jhammel@mozilla.com>
parents: 11
diff changeset
7
15
0bea5297c156 introduce a more betterer test
Jeff Hammel <jhammel@mozilla.com>
parents: 13
diff changeset
8 class StringMunge(object):
0bea5297c156 introduce a more betterer test
Jeff Hammel <jhammel@mozilla.com>
parents: 13
diff changeset
9 def __init__(self, prefix, delimeter=':', callback=None):
0bea5297c156 introduce a more betterer test
Jeff Hammel <jhammel@mozilla.com>
parents: 13
diff changeset
10 self.delimeter = delimeter
0bea5297c156 introduce a more betterer test
Jeff Hammel <jhammel@mozilla.com>
parents: 13
diff changeset
11 self.prefix = prefix
0bea5297c156 introduce a more betterer test
Jeff Hammel <jhammel@mozilla.com>
parents: 13
diff changeset
12 self.callback = callback
0bea5297c156 introduce a more betterer test
Jeff Hammel <jhammel@mozilla.com>
parents: 13
diff changeset
13 def __call__(self, string):
0bea5297c156 introduce a more betterer test
Jeff Hammel <jhammel@mozilla.com>
parents: 13
diff changeset
14 if self.callback:
0bea5297c156 introduce a more betterer test
Jeff Hammel <jhammel@mozilla.com>
parents: 13
diff changeset
15 string = self.callback(string)
0bea5297c156 introduce a more betterer test
Jeff Hammel <jhammel@mozilla.com>
parents: 13
diff changeset
16 return self.prefix + self.delimeter + string
0bea5297c156 introduce a more betterer test
Jeff Hammel <jhammel@mozilla.com>
parents: 13
diff changeset
17
13
eb81d6943f2e add another dummy object
Jeff Hammel <jhammel@mozilla.com>
parents: 11
diff changeset
18 class Foo(object):
eb81d6943f2e add another dummy object
Jeff Hammel <jhammel@mozilla.com>
parents: 11
diff changeset
19 def __init__(self, a, b):
eb81d6943f2e add another dummy object
Jeff Hammel <jhammel@mozilla.com>
parents: 11
diff changeset
20 self.factor = a*100 + b
eb81d6943f2e add another dummy object
Jeff Hammel <jhammel@mozilla.com>
parents: 11
diff changeset
21 def __call__(self, number):
eb81d6943f2e add another dummy object
Jeff Hammel <jhammel@mozilla.com>
parents: 11
diff changeset
22 return number * self.factor
36
362912842985 start stubbing out wrappers....i am somewhat perplexed
Jeff Hammel <jhammel@mozilla.com>
parents: 15
diff changeset
23
362912842985 start stubbing out wrappers....i am somewhat perplexed
Jeff Hammel <jhammel@mozilla.com>
parents: 15
diff changeset
24 class Wrapper(object):
55
49f88cde6219 make the test wrapper more interesting (and testable)
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
25 def __init__(self, app, **values):
36
362912842985 start stubbing out wrappers....i am somewhat perplexed
Jeff Hammel <jhammel@mozilla.com>
parents: 15
diff changeset
26 self.app = app
55
49f88cde6219 make the test wrapper more interesting (and testable)
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
27 self.values = dict([(int(i), j) for i, j in values])
36
362912842985 start stubbing out wrappers....i am somewhat perplexed
Jeff Hammel <jhammel@mozilla.com>
parents: 15
diff changeset
28 def __call__(self, *args, **kwargs):
362912842985 start stubbing out wrappers....i am somewhat perplexed
Jeff Hammel <jhammel@mozilla.com>
parents: 15
diff changeset
29 retval = self.app(*args, **kwargs)
362912842985 start stubbing out wrappers....i am somewhat perplexed
Jeff Hammel <jhammel@mozilla.com>
parents: 15
diff changeset
30 values = {1: 'one',
362912842985 start stubbing out wrappers....i am somewhat perplexed
Jeff Hammel <jhammel@mozilla.com>
parents: 15
diff changeset
31 2: 'two',
362912842985 start stubbing out wrappers....i am somewhat perplexed
Jeff Hammel <jhammel@mozilla.com>
parents: 15
diff changeset
32 3: 'three'} # etc
55
49f88cde6219 make the test wrapper more interesting (and testable)
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
33 values.update(self.values)
36
362912842985 start stubbing out wrappers....i am somewhat perplexed
Jeff Hammel <jhammel@mozilla.com>
parents: 15
diff changeset
34 if retval in values:
362912842985 start stubbing out wrappers....i am somewhat perplexed
Jeff Hammel <jhammel@mozilla.com>
parents: 15
diff changeset
35 return values[retval]
362912842985 start stubbing out wrappers....i am somewhat perplexed
Jeff Hammel <jhammel@mozilla.com>
parents: 15
diff changeset
36 return retval
362912842985 start stubbing out wrappers....i am somewhat perplexed
Jeff Hammel <jhammel@mozilla.com>
parents: 15
diff changeset
37
362912842985 start stubbing out wrappers....i am somewhat perplexed
Jeff Hammel <jhammel@mozilla.com>
parents: 15
diff changeset
38 def wrap(app):
362912842985 start stubbing out wrappers....i am somewhat perplexed
Jeff Hammel <jhammel@mozilla.com>
parents: 15
diff changeset
39 return Wrapper(app)
362912842985 start stubbing out wrappers....i am somewhat perplexed
Jeff Hammel <jhammel@mozilla.com>
parents: 15
diff changeset
40
362912842985 start stubbing out wrappers....i am somewhat perplexed
Jeff Hammel <jhammel@mozilla.com>
parents: 15
diff changeset
41 def fib(n):
362912842985 start stubbing out wrappers....i am somewhat perplexed
Jeff Hammel <jhammel@mozilla.com>
parents: 15
diff changeset
42 """return the nth fibonacci term"""
37
5268ab85fe1b stub a fibonacci sequence for testing
Jeff Hammel <jhammel@mozilla.com>
parents: 36
diff changeset
43 sequence = [1,1]
38
f6616a5f468f test fibonacci sequence
Jeff Hammel <jhammel@mozilla.com>
parents: 37
diff changeset
44 while len(sequence) - 1 < n:
f6616a5f468f test fibonacci sequence
Jeff Hammel <jhammel@mozilla.com>
parents: 37
diff changeset
45 sequence.append(sequence[len(sequence)-1] + sequence[len(sequence)-2])
37
5268ab85fe1b stub a fibonacci sequence for testing
Jeff Hammel <jhammel@mozilla.com>
parents: 36
diff changeset
46 return sequence[n]