~certify-web-dev/twisted/certify-trunk

« back to all changes in this revision

Viewing changes to twisted/trial/test/mockdoctest.py

  • Committer: Bazaar Package Importer
  • Author(s): Matthias Klose
  • Date: 2006-02-22 22:52:47 UTC
  • Revision ID: james.westby@ubuntu.com-20060222225247-0mjb8ij9473m5zse
Tags: 2.2.0-1ubuntu1
Synchronize with Debian unstable.

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