~ntt-pf-lab/nova/monkey_patch_notification

« back to all changes in this revision

Viewing changes to vendor/Twisted-10.0.0/twisted/trial/test/mockdoctest.py

  • Committer: Jesse Andrews
  • Date: 2010-05-28 06:05:26 UTC
  • Revision ID: git-v1:bf6e6e718cdc7488e2da87b21e258ccc065fe499
initial commit

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# Copyright (c) 2001-2004 Twisted Matrix Laboratories.
 
2
# See LICENSE for details.
 
3
 
 
4
# this module is a trivial class with doctests and a __test__ attribute
 
5
# to test trial's doctest support with python2.4
 
6
 
 
7
 
 
8
class Counter(object):
 
9
    """a simple counter object for testing trial's doctest support
 
10
 
 
11
         >>> c = Counter()
 
12
         >>> c.value()
 
13
         0
 
14
         >>> c += 3
 
15
         >>> c.value()
 
16
         3
 
17
         >>> c.incr()
 
18
         >>> c.value() == 4
 
19
         True
 
20
         >>> c == 4
 
21
         True
 
22
         >>> c != 9
 
23
         True
 
24
 
 
25
    """
 
26
    _count = 0
 
27
 
 
28
    def __init__(self, initialValue=0, maxval=None):
 
29
        self._count = initialValue
 
30
        self.maxval = maxval
 
31
 
 
32
    def __iadd__(self, other):
 
33
        """add other to my value and return self
 
34
 
 
35
             >>> c = Counter(100)
 
36
             >>> c += 333
 
37
             >>> c == 433
 
38
             True
 
39
        """
 
40
        if self.maxval is not None and ((self._count + other) > self.maxval):
 
41
            raise ValueError, "sorry, counter got too big"
 
42
        else:
 
43
            self._count += other
 
44
        return self
 
45
 
 
46
    def __eq__(self, other):
 
47
        """equality operator, compare other to my value()
 
48
           
 
49
           >>> c = Counter()
 
50
           >>> c == 0
 
51
           True
 
52
           >>> c += 10
 
53
           >>> c.incr()
 
54
           >>> c == 10   # fail this test on purpose
 
55
           True
 
56
 
 
57
        """
 
58
        return self._count == other
 
59
 
 
60
    def __ne__(self, other):
 
61
        """inequality operator
 
62
 
 
63
             >>> c = Counter()
 
64
             >>> c != 10
 
65
             True
 
66
        """
 
67
        return not self.__eq__(other)
 
68
 
 
69
    def incr(self):
 
70
        """increment my value by 1
 
71
 
 
72
             >>> from twisted.trial.test.mockdoctest import Counter
 
73
             >>> c = Counter(10, 11)
 
74
             >>> c.incr()
 
75
             >>> c.value() == 11
 
76
             True
 
77
             >>> c.incr()
 
78
             Traceback (most recent call last):
 
79
               File "<stdin>", line 1, in ?
 
80
               File "twisted/trial/test/mockdoctest.py", line 51, in incr
 
81
                 self.__iadd__(1)
 
82
               File "twisted/trial/test/mockdoctest.py", line 39, in __iadd__
 
83
                 raise ValueError, "sorry, counter got too big"
 
84
             ValueError: sorry, counter got too big
 
85
        """
 
86
        self.__iadd__(1)
 
87
 
 
88
    def value(self):
 
89
        """return this counter's value
 
90
 
 
91
             >>> c = Counter(555)
 
92
             >>> c.value() == 555
 
93
             True
 
94
        """
 
95
        return self._count
 
96
 
 
97
    def unexpectedException(self):
 
98
        """i will raise an unexpected exception...
 
99
        ... *CAUSE THAT'S THE KINDA GUY I AM*
 
100
            
 
101
              >>> 1/0
 
102
        """
 
103
 
 
104