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
| from django.test import TestCase
| from app.testwatch import TestWatch
|
|
| def test(a, b):
| return a + b
|
| class TestTestWatch(TestCase):
| def test_methods(self):
| tw = TestWatch()
| self.assertTrue(tw.get_calls_count("app.tests.test_testwatch.test") == 0)
| self.assertTrue(tw.get_calls_count("app.tests.test_testwatch.nonexistent") == 0)
|
| # Test watch count
| tw.hook_pre(test, 1, 2)
| test(1, 2)
| tw.hook_post(test, 1, 2)
|
| self.assertTrue(tw.get_calls_count("app.tests.test_testwatch.test") == 1)
|
| tw.hook_pre(test, 1, 2)
| test(1, 2)
| tw.hook_post(test, 1, 2)
|
| self.assertTrue(tw.get_calls_count("app.tests.test_testwatch.test") == 2)
|
| @TestWatch.watch(testWatch=tw)
| def test2(d):
| d['flag'] = not d['flag']
|
| # Test intercept
| tw.intercept("app.tests.test_testwatch.test2")
| d = {'flag': True}
| test2(d)
| self.assertTrue(d['flag'])
|
| # Test function replacement intercept
| d = {
| 'a': False,
| 'b': False
| }
| @TestWatch.watch(testWatch=tw)
| def test3(d):
| d['a'] = True
|
| def replacement(d):
| d['b'] = True
|
| tw.intercept("app.tests.test_testwatch.test3", replacement)
| test3(d)
| self.assertFalse(d['a'])
| self.assertTrue(d['b'])
|
|