Update graminit.c for the fix for #1488915, Multiple dots in relative import

statement raise SyntaxError, and add testcase.
This commit is contained in:
Thomas Wouters 2006-05-25 11:26:25 +00:00
parent cf8229ea3b
commit 143bdfcee6
2 changed files with 25 additions and 21 deletions

View File

@ -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")

View File

@ -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"},