MCPcopy Create free account
hub / github.com/SplootCode/splootcode / testBreak

Method testBreak

python/tests/test_loop_annotations.py:158–230  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

156
157
158 def testBreak(self):
159 self.maxDiff = None
160 splootFile = splootFromPython('''
161for char in 'hello':
162 if char == 'l':
163 break
164 print(char)
165print('end')
166''')
167 f = io.StringIO()
168 f.write = wrapStdout(f.write)
169 with contextlib.redirect_stdout(f):
170 cap, _ = executePythonFile(splootFile)
171
172 self.assertEqual(cap, {
173 'root': {
174 'type': 'PYTHON_FILE',
175 'data': {
176 'body': [
177 {
178 'type': 'PYTHON_FOR_LOOP',
179 'data': {'frames': [
180 {
181 'type': 'PYTHON_FOR_LOOP_ITERATION',
182 'data':{
183 'iterable': [{'data': {'result': 'h', 'resultType': 'str'}}],
184 'block': [{
185 'type': 'PYTHON_IF_STATEMENT',
186 'data': {'condition': [{'data': {'result': 'False', 'resultType':'bool'}}]},
187 },{
188 'type': 'PYTHON_EXPRESSION',
189 'data': {'result': 'None', 'resultType': 'NoneType'},
190 'sideEffects': [{'type': 'stdout', 'value':'h'}, {'type': 'stdout', 'value':'\n'}]
191 }],
192 },
193 },
194 {
195 'type': 'PYTHON_FOR_LOOP_ITERATION',
196 'data':{
197 'iterable': [{'data': {'result': 'e', 'resultType': 'str'}}],
198 'block': [{
199 'type': 'PYTHON_IF_STATEMENT',
200 'data': {'condition': [{'data': {'result': 'False', 'resultType':'bool'}}]},
201 },{
202 'type': 'PYTHON_EXPRESSION',
203 'data': {'result': 'None', 'resultType': 'NoneType'},
204 'sideEffects': [{'type': 'stdout', 'value':'e'}, {'type': 'stdout', 'value':'\n'}]
205 }],
206 },
207 },
208 {
209 'type': 'PYTHON_FOR_LOOP_ITERATION',
210 'data':{
211 'iterable': [{'data': {'result': 'l', 'resultType': 'str'}}],
212 'block': [{
213 'type': 'PYTHON_IF_STATEMENT',
214 'data': {
215 'condition': [{'data': {'result': 'True', 'resultType':'bool'}}],

Callers

nothing calls this directly

Calls 3

splootFromPythonFunction · 0.90
wrapStdoutFunction · 0.90
executePythonFileFunction · 0.90

Tested by

no test coverage detected