]> granicus.if.org Git - python/commitdiff
Update graminit.c for the fix for #1488915, Multiple dots in relative import
authorThomas Wouters <thomas@python.org>
Thu, 25 May 2006 11:26:25 +0000 (11:26 +0000)
committerThomas Wouters <thomas@python.org>
Thu, 25 May 2006 11:26:25 +0000 (11:26 +0000)
statement raise SyntaxError, and add testcase.

Lib/test/test_importhooks.py
Python/graminit.c

index 0693581c32d1af65f7dd486a2994767b4af704d9..e8b4695c7bcc17dc4bf0af5fb642b6c507863561 100644 (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")
index ae367ce0636c52d582e23deb35194f5d98dc6751..8f20502b10a6241f32e66bb2e203e2e1e7027b1b 100644 (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},
-};
-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"},