Mercurial > cpython-lru_cache-weakref
annotate Lib/test/test_sys_setprofile.py @ 79675:c0a2294de787 2.7
Issue #16199: Backport 2to3 typo fix from 3.2.
| author | Chris Jerdonek <chris.jerdonek@gmail.com> |
|---|---|
| date | Thu, 11 Oct 2012 16:15:46 -0700 |
| parents | 6ece629445b6 |
| children |
| rev | line source |
|---|---|
|
65422
6ece629445b6
Merged revisions 85589-85591 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
63267
diff
changeset
|
1 import gc |
|
63265
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
2 import pprint |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
3 import sys |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
4 import unittest |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
5 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
6 from test import test_support |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
7 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
8 class TestGetProfile(unittest.TestCase): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
9 def setUp(self): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
10 sys.setprofile(None) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
11 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
12 def tearDown(self): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
13 sys.setprofile(None) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
14 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
15 def test_empty(self): |
|
65422
6ece629445b6
Merged revisions 85589-85591 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
63267
diff
changeset
|
16 self.assertIsNone(sys.getprofile()) |
|
63265
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
17 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
18 def test_setget(self): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
19 def fn(*args): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
20 pass |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
21 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
22 sys.setprofile(fn) |
|
65422
6ece629445b6
Merged revisions 85589-85591 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
63267
diff
changeset
|
23 self.assertIs(sys.getprofile(), fn) |
|
63265
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
24 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
25 class HookWatcher: |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
26 def __init__(self): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
27 self.frames = [] |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
28 self.events = [] |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
29 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
30 def callback(self, frame, event, arg): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
31 if (event == "call" |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
32 or event == "return" |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
33 or event == "exception"): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
34 self.add_event(event, frame) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
35 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
36 def add_event(self, event, frame=None): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
37 """Add an event to the log.""" |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
38 if frame is None: |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
39 frame = sys._getframe(1) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
40 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
41 try: |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
42 frameno = self.frames.index(frame) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
43 except ValueError: |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
44 frameno = len(self.frames) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
45 self.frames.append(frame) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
46 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
47 self.events.append((frameno, event, ident(frame))) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
48 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
49 def get_events(self): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
50 """Remove calls to add_event().""" |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
51 disallowed = [ident(self.add_event.im_func), ident(ident)] |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
52 self.frames = None |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
53 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
54 return [item for item in self.events if item[2] not in disallowed] |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
55 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
56 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
57 class ProfileSimulator(HookWatcher): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
58 def __init__(self, testcase): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
59 self.testcase = testcase |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
60 self.stack = [] |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
61 HookWatcher.__init__(self) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
62 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
63 def callback(self, frame, event, arg): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
64 # Callback registered with sys.setprofile()/sys.settrace() |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
65 self.dispatch[event](self, frame) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
66 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
67 def trace_call(self, frame): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
68 self.add_event('call', frame) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
69 self.stack.append(frame) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
70 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
71 def trace_return(self, frame): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
72 self.add_event('return', frame) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
73 self.stack.pop() |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
74 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
75 def trace_exception(self, frame): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
76 self.testcase.fail( |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
77 "the profiler should never receive exception events") |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
78 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
79 def trace_pass(self, frame): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
80 pass |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
81 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
82 dispatch = { |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
83 'call': trace_call, |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
84 'exception': trace_exception, |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
85 'return': trace_return, |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
86 'c_call': trace_pass, |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
87 'c_return': trace_pass, |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
88 'c_exception': trace_pass, |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
89 } |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
90 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
91 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
92 class TestCaseBase(unittest.TestCase): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
93 def check_events(self, callable, expected): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
94 events = capture_events(callable, self.new_watcher()) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
95 if events != expected: |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
96 self.fail("Expected events:\n%s\nReceived events:\n%s" |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
97 % (pprint.pformat(expected), pprint.pformat(events))) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
98 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
99 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
100 class ProfileHookTestCase(TestCaseBase): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
101 def new_watcher(self): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
102 return HookWatcher() |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
103 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
104 def test_simple(self): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
105 def f(p): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
106 pass |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
107 f_ident = ident(f) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
108 self.check_events(f, [(1, 'call', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
109 (1, 'return', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
110 ]) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
111 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
112 def test_exception(self): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
113 def f(p): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
114 1./0 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
115 f_ident = ident(f) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
116 self.check_events(f, [(1, 'call', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
117 (1, 'return', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
118 ]) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
119 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
120 def test_caught_exception(self): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
121 def f(p): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
122 try: 1./0 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
123 except: pass |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
124 f_ident = ident(f) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
125 self.check_events(f, [(1, 'call', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
126 (1, 'return', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
127 ]) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
128 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
129 def test_caught_nested_exception(self): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
130 def f(p): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
131 try: 1./0 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
132 except: pass |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
133 f_ident = ident(f) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
134 self.check_events(f, [(1, 'call', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
135 (1, 'return', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
136 ]) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
137 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
138 def test_nested_exception(self): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
139 def f(p): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
140 1./0 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
141 f_ident = ident(f) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
142 self.check_events(f, [(1, 'call', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
143 # This isn't what I expected: |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
144 # (0, 'exception', protect_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
145 # I expected this again: |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
146 (1, 'return', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
147 ]) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
148 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
149 def test_exception_in_except_clause(self): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
150 def f(p): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
151 1./0 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
152 def g(p): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
153 try: |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
154 f(p) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
155 except: |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
156 try: f(p) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
157 except: pass |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
158 f_ident = ident(f) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
159 g_ident = ident(g) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
160 self.check_events(g, [(1, 'call', g_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
161 (2, 'call', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
162 (2, 'return', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
163 (3, 'call', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
164 (3, 'return', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
165 (1, 'return', g_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
166 ]) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
167 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
168 def test_exception_propogation(self): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
169 def f(p): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
170 1./0 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
171 def g(p): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
172 try: f(p) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
173 finally: p.add_event("falling through") |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
174 f_ident = ident(f) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
175 g_ident = ident(g) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
176 self.check_events(g, [(1, 'call', g_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
177 (2, 'call', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
178 (2, 'return', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
179 (1, 'falling through', g_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
180 (1, 'return', g_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
181 ]) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
182 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
183 def test_raise_twice(self): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
184 def f(p): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
185 try: 1./0 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
186 except: 1./0 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
187 f_ident = ident(f) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
188 self.check_events(f, [(1, 'call', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
189 (1, 'return', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
190 ]) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
191 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
192 def test_raise_reraise(self): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
193 def f(p): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
194 try: 1./0 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
195 except: raise |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
196 f_ident = ident(f) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
197 self.check_events(f, [(1, 'call', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
198 (1, 'return', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
199 ]) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
200 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
201 def test_raise(self): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
202 def f(p): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
203 raise Exception() |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
204 f_ident = ident(f) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
205 self.check_events(f, [(1, 'call', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
206 (1, 'return', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
207 ]) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
208 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
209 def test_distant_exception(self): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
210 def f(): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
211 1./0 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
212 def g(): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
213 f() |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
214 def h(): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
215 g() |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
216 def i(): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
217 h() |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
218 def j(p): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
219 i() |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
220 f_ident = ident(f) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
221 g_ident = ident(g) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
222 h_ident = ident(h) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
223 i_ident = ident(i) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
224 j_ident = ident(j) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
225 self.check_events(j, [(1, 'call', j_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
226 (2, 'call', i_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
227 (3, 'call', h_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
228 (4, 'call', g_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
229 (5, 'call', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
230 (5, 'return', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
231 (4, 'return', g_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
232 (3, 'return', h_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
233 (2, 'return', i_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
234 (1, 'return', j_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
235 ]) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
236 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
237 def test_generator(self): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
238 def f(): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
239 for i in range(2): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
240 yield i |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
241 def g(p): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
242 for i in f(): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
243 pass |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
244 f_ident = ident(f) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
245 g_ident = ident(g) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
246 self.check_events(g, [(1, 'call', g_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
247 # call the iterator twice to generate values |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
248 (2, 'call', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
249 (2, 'return', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
250 (2, 'call', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
251 (2, 'return', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
252 # once more; returns end-of-iteration with |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
253 # actually raising an exception |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
254 (2, 'call', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
255 (2, 'return', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
256 (1, 'return', g_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
257 ]) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
258 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
259 def test_stop_iteration(self): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
260 def f(): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
261 for i in range(2): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
262 yield i |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
263 raise StopIteration |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
264 def g(p): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
265 for i in f(): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
266 pass |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
267 f_ident = ident(f) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
268 g_ident = ident(g) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
269 self.check_events(g, [(1, 'call', g_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
270 # call the iterator twice to generate values |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
271 (2, 'call', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
272 (2, 'return', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
273 (2, 'call', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
274 (2, 'return', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
275 # once more to hit the raise: |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
276 (2, 'call', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
277 (2, 'return', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
278 (1, 'return', g_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
279 ]) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
280 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
281 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
282 class ProfileSimulatorTestCase(TestCaseBase): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
283 def new_watcher(self): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
284 return ProfileSimulator(self) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
285 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
286 def test_simple(self): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
287 def f(p): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
288 pass |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
289 f_ident = ident(f) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
290 self.check_events(f, [(1, 'call', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
291 (1, 'return', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
292 ]) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
293 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
294 def test_basic_exception(self): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
295 def f(p): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
296 1./0 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
297 f_ident = ident(f) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
298 self.check_events(f, [(1, 'call', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
299 (1, 'return', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
300 ]) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
301 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
302 def test_caught_exception(self): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
303 def f(p): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
304 try: 1./0 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
305 except: pass |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
306 f_ident = ident(f) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
307 self.check_events(f, [(1, 'call', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
308 (1, 'return', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
309 ]) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
310 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
311 def test_distant_exception(self): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
312 def f(): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
313 1./0 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
314 def g(): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
315 f() |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
316 def h(): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
317 g() |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
318 def i(): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
319 h() |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
320 def j(p): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
321 i() |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
322 f_ident = ident(f) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
323 g_ident = ident(g) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
324 h_ident = ident(h) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
325 i_ident = ident(i) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
326 j_ident = ident(j) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
327 self.check_events(j, [(1, 'call', j_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
328 (2, 'call', i_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
329 (3, 'call', h_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
330 (4, 'call', g_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
331 (5, 'call', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
332 (5, 'return', f_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
333 (4, 'return', g_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
334 (3, 'return', h_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
335 (2, 'return', i_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
336 (1, 'return', j_ident), |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
337 ]) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
338 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
339 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
340 def ident(function): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
341 if hasattr(function, "f_code"): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
342 code = function.f_code |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
343 else: |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
344 code = function.func_code |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
345 return code.co_firstlineno, code.co_name |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
346 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
347 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
348 def protect(f, p): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
349 try: f(p) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
350 except: pass |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
351 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
352 protect_ident = ident(protect) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
353 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
354 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
355 def capture_events(callable, p=None): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
356 if p is None: |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
357 p = HookWatcher() |
|
65422
6ece629445b6
Merged revisions 85589-85591 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
63267
diff
changeset
|
358 # Disable the garbage collector. This prevents __del__s from showing up in |
|
6ece629445b6
Merged revisions 85589-85591 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
63267
diff
changeset
|
359 # traces. |
|
6ece629445b6
Merged revisions 85589-85591 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
63267
diff
changeset
|
360 old_gc = gc.isenabled() |
|
6ece629445b6
Merged revisions 85589-85591 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
63267
diff
changeset
|
361 gc.disable() |
|
6ece629445b6
Merged revisions 85589-85591 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
63267
diff
changeset
|
362 try: |
|
6ece629445b6
Merged revisions 85589-85591 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
63267
diff
changeset
|
363 sys.setprofile(p.callback) |
|
6ece629445b6
Merged revisions 85589-85591 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
63267
diff
changeset
|
364 protect(callable, p) |
|
6ece629445b6
Merged revisions 85589-85591 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
63267
diff
changeset
|
365 sys.setprofile(None) |
|
6ece629445b6
Merged revisions 85589-85591 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
63267
diff
changeset
|
366 finally: |
|
6ece629445b6
Merged revisions 85589-85591 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
63267
diff
changeset
|
367 if old_gc: |
|
6ece629445b6
Merged revisions 85589-85591 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents:
63267
diff
changeset
|
368 gc.enable() |
|
63265
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
369 return p.get_events()[1:-1] |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
370 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
371 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
372 def show_events(callable): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
373 import pprint |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
374 pprint.pprint(capture_events(callable)) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
375 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
376 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
377 def test_main(): |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
378 test_support.run_unittest( |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
379 TestGetProfile, |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
380 ProfileHookTestCase, |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
381 ProfileSimulatorTestCase |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
382 ) |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
383 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
384 |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
385 if __name__ == "__main__": |
|
8e8cb168a089
Reverted r83142: bad svnmerge
Alexander Belopolsky <alexander.belopolsky@gmail.com>
parents:
diff
changeset
|
386 test_main() |
