Show More
@@ -225,6 +225,13 b' def split_blocks(python):' | |||
|
225 | 225 | # to put in a more sophisticated test. |
|
226 | 226 | linenos = [x.lineno-1 for x in ast.node if x.lineno is not None] |
|
227 | 227 | |
|
228 | # When we have a bare string as the first statement, it does not end up as | |
|
229 | # a Discard Node in the AST as we might expect. Instead, it gets interpreted | |
|
230 | # as the docstring of the module. Check for this case and prepend 0 (the | |
|
231 | # first line number) to the list of linenos to account for it. | |
|
232 | if ast.doc is not None: | |
|
233 | linenos.insert(0, 0) | |
|
234 | ||
|
228 | 235 | # When we finally get the slices, we will need to slice all the way to |
|
229 | 236 | # the end even though we don't have a line number for it. Fortunately, |
|
230 | 237 | # None does the job nicely. |
@@ -347,7 +354,7 b' class InputSplitter(object):' | |||
|
347 | 354 | return out |
|
348 | 355 | |
|
349 | 356 | def push(self, lines): |
|
350 |
"""Push one or |
|
|
357 | """Push one or more lines of input. | |
|
351 | 358 | |
|
352 | 359 | This stores the given lines and returns a status code indicating |
|
353 | 360 | whether the code forms a complete Python block or not. |
@@ -329,6 +329,15 b' class InputSplitterTestCase(unittest.TestCase):' | |||
|
329 | 329 | [['for i in range(10):' |
|
330 | 330 | ' x=i**2'], |
|
331 | 331 | ['z = 1']], |
|
332 | ||
|
333 | [['"asdf"']], | |
|
334 | ||
|
335 | [['"asdf"'], | |
|
336 | ['10'], | |
|
337 | ], | |
|
338 | ||
|
339 | [['"""foo', | |
|
340 | 'bar"""']], | |
|
332 | 341 | ] |
|
333 | 342 | for block_lines in all_blocks: |
|
334 | 343 | self.check_split(block_lines) |
General Comments 0
You need to be logged in to leave comments.
Login now