mirror of https://github.com/python/cpython
Update graminit.c for the fix for #1488915, Multiple dots in relative import
statement raise SyntaxError, and add testcase.
This commit is contained in:
parent
cf8229ea3b
commit
143bdfcee6
|
@ -14,6 +14,7 @@ def get_file():
|
|||
|
||||
absimp = "import sub\n"
|
||||
relimp = "from . import sub\n"
|
||||
deeprelimp = "from .... import sub\n"
|
||||
futimp = "from __future__ import absolute_import\n"
|
||||
|
||||
reload_src = test_src+"""\
|
||||
|
@ -26,6 +27,7 @@ reload_co = compile(reload_src, "<???>", "exec")
|
|||
test2_oldabs_co = compile(absimp + test_src, "<???>", "exec")
|
||||
test2_newabs_co = compile(futimp + absimp + test_src, "<???>", "exec")
|
||||
test2_newrel_co = compile(relimp + test_src, "<???>", "exec")
|
||||
test2_deeprel_co = compile(deeprelimp + test_src, "<???>", "exec")
|
||||
test2_futrel_co = compile(futimp + relimp + test_src, "<???>", "exec")
|
||||
|
||||
test_path = "!!!_test_!!!"
|
||||
|
@ -46,10 +48,11 @@ class TestImporter:
|
|||
"hooktestmodule": (False, test_co),
|
||||
"hooktestpackage": (True, test_co),
|
||||
"hooktestpackage.sub": (True, test_co),
|
||||
"hooktestpackage.sub.subber": (False, test_co),
|
||||
"hooktestpackage.sub.subber": (True, test_co),
|
||||
"hooktestpackage.oldabs": (False, test2_oldabs_co),
|
||||
"hooktestpackage.newabs": (False, test2_newabs_co),
|
||||
"hooktestpackage.newrel": (False, test2_newrel_co),
|
||||
"hooktestpackage.sub.subber.subest": (True, test2_deeprel_co),
|
||||
"hooktestpackage.futrel": (False, test2_futrel_co),
|
||||
"sub": (False, test_co),
|
||||
"reloadmodule": (False, test_co),
|
||||
|
@ -203,6 +206,12 @@ class ImportHooksTestCase(ImportHooksBaseTestCase):
|
|||
self.assertEqual(hooktestpackage.newrel.sub,
|
||||
hooktestpackage.sub)
|
||||
|
||||
import hooktestpackage.sub.subber.subest as subest
|
||||
self.assertEqual(subest.get_name(),
|
||||
"hooktestpackage.sub.subber.subest")
|
||||
self.assertEqual(subest.sub,
|
||||
hooktestpackage.sub)
|
||||
|
||||
import hooktestpackage.futrel
|
||||
self.assertEqual(hooktestpackage.futrel.get_name(),
|
||||
"hooktestpackage.futrel")
|
||||
|
|
|
@ -517,41 +517,36 @@ static arc arcs_26_1[2] = {
|
|||
{12, 3},
|
||||
};
|
||||
static arc arcs_26_2[3] = {
|
||||
{75, 4},
|
||||
{75, 2},
|
||||
{12, 3},
|
||||
{72, 5},
|
||||
{72, 4},
|
||||
};
|
||||
static arc arcs_26_3[1] = {
|
||||
{72, 5},
|
||||
{72, 4},
|
||||
};
|
||||
static arc arcs_26_4[2] = {
|
||||
{75, 4},
|
||||
{12, 3},
|
||||
static arc arcs_26_4[3] = {
|
||||
{28, 5},
|
||||
{13, 6},
|
||||
{76, 5},
|
||||
};
|
||||
static arc arcs_26_5[3] = {
|
||||
{28, 6},
|
||||
{13, 7},
|
||||
{76, 6},
|
||||
static arc arcs_26_5[1] = {
|
||||
{0, 5},
|
||||
};
|
||||
static arc arcs_26_6[1] = {
|
||||
{0, 6},
|
||||
{76, 7},
|
||||
};
|
||||
static arc arcs_26_7[1] = {
|
||||
{76, 8},
|
||||
{15, 5},
|
||||
};
|
||||
static arc arcs_26_8[1] = {
|
||||
{15, 6},
|
||||
};
|
||||
static state states_26[9] = {
|
||||
static state states_26[8] = {
|
||||
{1, arcs_26_0},
|
||||
{2, arcs_26_1},
|
||||
{3, arcs_26_2},
|
||||
{1, arcs_26_3},
|
||||
{2, arcs_26_4},
|
||||
{3, arcs_26_5},
|
||||
{3, arcs_26_4},
|
||||
{1, arcs_26_5},
|
||||
{1, arcs_26_6},
|
||||
{1, arcs_26_7},
|
||||
{1, arcs_26_8},
|
||||
};
|
||||
static arc arcs_27_0[1] = {
|
||||
{19, 1},
|
||||
|
@ -1839,7 +1834,7 @@ static dfa dfas[84] = {
|
|||
"\000\000\000\000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000"},
|
||||
{281, "import_name", 0, 3, states_25,
|
||||
"\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000"},
|
||||
{282, "import_from", 0, 9, states_26,
|
||||
{282, "import_from", 0, 8, states_26,
|
||||
"\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000"},
|
||||
{283, "import_as_name", 0, 4, states_27,
|
||||
"\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
|
||||
|
|
Loading…
Reference in New Issue