Mercurial > hg > pyloader
annotate tests/objects.py @ 75:20bdb8125817
inline wrapper arguments now seem to work....thats....uncanny
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Thu, 09 Jun 2011 18:31:13 -0700 |
parents | cc361ad8a692 |
children | 2449fb4a89c1 |
rev | line source |
---|---|
11 | 1 """ |
2 test objects | |
3 """ | |
4 | |
5 def stringsort(*strings): | |
6 return ''.join(sorted(''.join(strings))) | |
13 | 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 | 18 class Foo(object): |
19 def __init__(self, a, b): | |
20 self.factor = a*100 + b | |
21 def __call__(self, number): | |
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 |
75
20bdb8125817
inline wrapper arguments now seem to work....thats....uncanny
Jeff Hammel <jhammel@mozilla.com>
parents:
60
diff
changeset
|
27 self.values = dict([(int(j), i) for i, j in values.items()]) # TODO: should be automagically converted ideally via pyloader |
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 |
58
2a1648a53857
pass values via wrap wrapper
Jeff Hammel <jhammel@mozilla.com>
parents:
57
diff
changeset
|
38 def wrap(app, **values): |
2a1648a53857
pass values via wrap wrapper
Jeff Hammel <jhammel@mozilla.com>
parents:
57
diff
changeset
|
39 return Wrapper(app, **values) |
36
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""" |
57
cb1898f8c72a
* illustrate another pattern
Jeff Hammel <jhammel@mozilla.com>
parents:
55
diff
changeset
|
43 n = int(n) # TODO: should be automagically converted ideally via pyloader |
37
5268ab85fe1b
stub a fibonacci sequence for testing
Jeff Hammel <jhammel@mozilla.com>
parents:
36
diff
changeset
|
44 sequence = [1,1] |
38 | 45 while len(sequence) - 1 < n: |
46 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
|
47 return sequence[n] |