File: test__function_stubs.py

package info (click to toggle)
python-pyforge 1.4.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 464 kB
  • sloc: python: 3,666; makefile: 12; sh: 7
file content (54 lines) | stat: -rw-r--r-- 2,226 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
from numbers import Number
from .ut_utils import ForgeTestCase
from forge.stub import FunctionStub
from forge.stub_handle import StubHandle

from urllib.request import urlopen

def some_function():
    "some doc"
    raise NotImplementedError()

class FunctionStubbingTest(ForgeTestCase):
    def test__stubbing_urlopen(self):
        # known bug in python 3
        urlopen_stub = self.forge.create_function_stub(urlopen)
        urlopen_stub("url").and_return(666)
        self.forge.replay()
        self.assertEqual(urlopen_stub("url"), 666)

class FunctionStubAttributesTest(ForgeTestCase):
    def setUp(self):
        super(FunctionStubAttributesTest, self).setUp()
        self.stub = self.forge.create_function_stub(some_function)
    def test__name(self):
        self.assertEqual(self.stub.__name__, some_function.__name__)
    def test__specific_name(self):
        stub = self.forge.create_function_stub(some_function, name='other_name')
        self.assertEqual(stub.__name__, 'other_name')
    def test__doc(self):
        self.assertEqual(self.stub.__doc__, some_function.__doc__)
    def test__stub_id(self):
        self.assertIsInstance(self.stub.__forge__.id, Number)
    def test__str_repr(self):
        self.assertIn('some_function', str(self.stub))
        self.assertIn('some_function', repr(self.stub))
    def test__forge_handle(self):
        stub = FunctionStub(self.forge, some_function)
        self.assertIs(stub.__forge__.original, some_function)
        self.assertIs(stub.__forge__.signature.func, some_function)
        self.assertIsInstance(stub.__forge__, StubHandle)
        self.assertIs(stub.__forge__.stub, stub)
        self.assertIs(stub.__forge__.forge, self.forge)
    def test__stub_record_marker(self):
        stub = FunctionStub(self.forge, some_function)
        self.assertFalse(stub.__forge__.has_recorded_calls())
        stub()
        self.assertTrue(stub.__forge__.has_recorded_calls())
        self.forge.replay()
        stub()
        self.assertTrue(stub.__forge__.has_recorded_calls())
        self.forge.verify()
        self.assertTrue(stub.__forge__.has_recorded_calls())
        self.forge.reset()
        self.assertFalse(stub.__forge__.has_recorded_calls())