MCPcopy Index your code
hub / github.com/python/cpython / test_parse

Method test_parse

Lib/test/test_pyrepl/test_pyrepl.py:1471–1525  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

1469 self.assertEqual(completer.get_path_and_prefix(name), expected)
1470
1471 def test_parse(self):
1472 cases = (
1473 ('import ', (None, '')),
1474 ('import foo', (None, 'foo')),
1475 ('import foo,', (None, '')),
1476 ('import foo, ', (None, '')),
1477 ('import foo, bar', (None, 'bar')),
1478 ('import foo, bar, baz', (None, 'baz')),
1479 ('import foo as bar,', (None, '')),
1480 ('import foo as bar, ', (None, '')),
1481 ('import foo as bar, baz', (None, 'baz')),
1482 ('import a.', (None, 'a.')),
1483 ('import a.b', (None, 'a.b')),
1484 ('import a.b.', (None, 'a.b.')),
1485 ('import a.b.c', (None, 'a.b.c')),
1486 ('import a.b.c, foo', (None, 'foo')),
1487 ('import a.b.c, foo.bar', (None, 'foo.bar')),
1488 ('import a.b.c, foo.bar,', (None, '')),
1489 ('import a.b.c, foo.bar, ', (None, '')),
1490 ('from foo', ('foo', None)),
1491 ('from a.', ('a.', None)),
1492 ('from a.b', ('a.b', None)),
1493 ('from a.b.', ('a.b.', None)),
1494 ('from a.b.c', ('a.b.c', None)),
1495 ('from foo import ', ('foo', '')),
1496 ('from foo import a', ('foo', 'a')),
1497 ('from ', ('', None)),
1498 ('from . import a', ('.', 'a')),
1499 ('from .foo import a', ('.foo', 'a')),
1500 ('from ..foo import a', ('..foo', 'a')),
1501 ('from foo import (', ('foo', '')),
1502 ('from foo import ( ', ('foo', '')),
1503 ('from foo import (a', ('foo', 'a')),
1504 ('from foo import (a,', ('foo', '')),
1505 ('from foo import (a, ', ('foo', '')),
1506 ('from foo import (a, c', ('foo', 'c')),
1507 ('from foo import (a as b, c', ('foo', 'c')),
1508 )
1509 for code, parsed in cases:
1510 parser = ImportParser(code)
1511 actual = parser.parse()
1512 with self.subTest(code=code):
1513 self.assertEqual(actual, parsed)
1514 # The parser should not get tripped up by any
1515 # other preceding statements
1516 _code = f'import xyz\n{code}'
1517 parser = ImportParser(_code)
1518 actual = parser.parse()
1519 with self.subTest(code=_code):
1520 self.assertEqual(actual, parsed)
1521 _code = f'import xyz;{code}'
1522 parser = ImportParser(_code)
1523 actual = parser.parse()
1524 with self.subTest(code=_code):
1525 self.assertEqual(actual, parsed)
1526
1527 def test_parse_error(self):
1528 cases = (

Callers

nothing calls this directly

Calls 4

parseMethod · 0.95
ImportParserClass · 0.90
subTestMethod · 0.45
assertEqualMethod · 0.45

Tested by

no test coverage detected