diff options
-rw-r--r-- | Lib/test/test_importhooks.py | 11 | ||||
-rw-r--r-- | Python/graminit.c | 35 |
2 files changed, 25 insertions, 21 deletions
diff --git a/Lib/test/test_importhooks.py b/Lib/test/test_importhooks.py index 0693581..e8b4695 100644 --- a/Lib/test/test_importhooks.py +++ b/Lib/test/test_importhooks.py @@ -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") diff --git a/Python/graminit.c b/Python/graminit.c index ae367ce..8f20502 100644 --- a/Python/graminit.c +++ b/Python/graminit.c @@ -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}, -}; -static arc arcs_26_8[1] = { - {15, 6}, + {15, 5}, }; -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"}, |