mirror of
https://github.com/python/cpython.git
synced 2025-11-15 00:00:00 +00:00
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
2 changed files with 25 additions and 21 deletions
|
|
@ -14,6 +14,7 @@ def get_file():
|
||||||
|
|
||||||
absimp = "import sub\n"
|
absimp = "import sub\n"
|
||||||
relimp = "from . import sub\n"
|
relimp = "from . import sub\n"
|
||||||
|
deeprelimp = "from .... import sub\n"
|
||||||
futimp = "from __future__ import absolute_import\n"
|
futimp = "from __future__ import absolute_import\n"
|
||||||
|
|
||||||
reload_src = test_src+"""\
|
reload_src = test_src+"""\
|
||||||
|
|
@ -26,6 +27,7 @@ reload_co = compile(reload_src, "<???>", "exec")
|
||||||
test2_oldabs_co = compile(absimp + test_src, "<???>", "exec")
|
test2_oldabs_co = compile(absimp + test_src, "<???>", "exec")
|
||||||
test2_newabs_co = compile(futimp + absimp + test_src, "<???>", "exec")
|
test2_newabs_co = compile(futimp + absimp + test_src, "<???>", "exec")
|
||||||
test2_newrel_co = compile(relimp + 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")
|
test2_futrel_co = compile(futimp + relimp + test_src, "<???>", "exec")
|
||||||
|
|
||||||
test_path = "!!!_test_!!!"
|
test_path = "!!!_test_!!!"
|
||||||
|
|
@ -46,10 +48,11 @@ class TestImporter:
|
||||||
"hooktestmodule": (False, test_co),
|
"hooktestmodule": (False, test_co),
|
||||||
"hooktestpackage": (True, test_co),
|
"hooktestpackage": (True, test_co),
|
||||||
"hooktestpackage.sub": (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.oldabs": (False, test2_oldabs_co),
|
||||||
"hooktestpackage.newabs": (False, test2_newabs_co),
|
"hooktestpackage.newabs": (False, test2_newabs_co),
|
||||||
"hooktestpackage.newrel": (False, test2_newrel_co),
|
"hooktestpackage.newrel": (False, test2_newrel_co),
|
||||||
|
"hooktestpackage.sub.subber.subest": (True, test2_deeprel_co),
|
||||||
"hooktestpackage.futrel": (False, test2_futrel_co),
|
"hooktestpackage.futrel": (False, test2_futrel_co),
|
||||||
"sub": (False, test_co),
|
"sub": (False, test_co),
|
||||||
"reloadmodule": (False, test_co),
|
"reloadmodule": (False, test_co),
|
||||||
|
|
@ -203,6 +206,12 @@ class ImportHooksTestCase(ImportHooksBaseTestCase):
|
||||||
self.assertEqual(hooktestpackage.newrel.sub,
|
self.assertEqual(hooktestpackage.newrel.sub,
|
||||||
hooktestpackage.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
|
import hooktestpackage.futrel
|
||||||
self.assertEqual(hooktestpackage.futrel.get_name(),
|
self.assertEqual(hooktestpackage.futrel.get_name(),
|
||||||
"hooktestpackage.futrel")
|
"hooktestpackage.futrel")
|
||||||
|
|
|
||||||
|
|
@ -517,41 +517,36 @@ static arc arcs_26_1[2] = {
|
||||||
{12, 3},
|
{12, 3},
|
||||||
};
|
};
|
||||||
static arc arcs_26_2[3] = {
|
static arc arcs_26_2[3] = {
|
||||||
{75, 4},
|
{75, 2},
|
||||||
{12, 3},
|
{12, 3},
|
||||||
{72, 5},
|
{72, 4},
|
||||||
};
|
};
|
||||||
static arc arcs_26_3[1] = {
|
static arc arcs_26_3[1] = {
|
||||||
{72, 5},
|
{72, 4},
|
||||||
};
|
};
|
||||||
static arc arcs_26_4[2] = {
|
static arc arcs_26_4[3] = {
|
||||||
{75, 4},
|
{28, 5},
|
||||||
{12, 3},
|
{13, 6},
|
||||||
|
{76, 5},
|
||||||
};
|
};
|
||||||
static arc arcs_26_5[3] = {
|
static arc arcs_26_5[1] = {
|
||||||
{28, 6},
|
{0, 5},
|
||||||
{13, 7},
|
|
||||||
{76, 6},
|
|
||||||
};
|
};
|
||||||
static arc arcs_26_6[1] = {
|
static arc arcs_26_6[1] = {
|
||||||
{0, 6},
|
{76, 7},
|
||||||
};
|
};
|
||||||
static arc arcs_26_7[1] = {
|
static arc arcs_26_7[1] = {
|
||||||
{76, 8},
|
{15, 5},
|
||||||
};
|
};
|
||||||
static arc arcs_26_8[1] = {
|
static state states_26[8] = {
|
||||||
{15, 6},
|
|
||||||
};
|
|
||||||
static state states_26[9] = {
|
|
||||||
{1, arcs_26_0},
|
{1, arcs_26_0},
|
||||||
{2, arcs_26_1},
|
{2, arcs_26_1},
|
||||||
{3, arcs_26_2},
|
{3, arcs_26_2},
|
||||||
{1, arcs_26_3},
|
{1, arcs_26_3},
|
||||||
{2, arcs_26_4},
|
{3, arcs_26_4},
|
||||||
{3, arcs_26_5},
|
{1, arcs_26_5},
|
||||||
{1, arcs_26_6},
|
{1, arcs_26_6},
|
||||||
{1, arcs_26_7},
|
{1, arcs_26_7},
|
||||||
{1, arcs_26_8},
|
|
||||||
};
|
};
|
||||||
static arc arcs_27_0[1] = {
|
static arc arcs_27_0[1] = {
|
||||||
{19, 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"},
|
"\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,
|
{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"},
|
"\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"},
|
"\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,
|
{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"},
|
"\000\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue