[Python-checkins] r46210 - in python/trunk: Lib/test/test_importhooks.py Python/graminit.c

thomas.wouters python-checkins at python.org
Thu May 25 13:26:26 CEST 2006


Author: thomas.wouters
Date: Thu May 25 13:26:25 2006
New Revision: 46210

Modified:
   python/trunk/Lib/test/test_importhooks.py
   python/trunk/Python/graminit.c
Log:

Update graminit.c for the fix for #1488915, Multiple dots in relative import
statement raise SyntaxError, and add testcase.



Modified: python/trunk/Lib/test/test_importhooks.py
==============================================================================
--- python/trunk/Lib/test/test_importhooks.py	(original)
+++ python/trunk/Lib/test/test_importhooks.py	Thu May 25 13:26:25 2006
@@ -14,6 +14,7 @@
 
 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 @@
 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 @@
         "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 @@
         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")

Modified: python/trunk/Python/graminit.c
==============================================================================
--- python/trunk/Python/graminit.c	(original)
+++ python/trunk/Python/graminit.c	Thu May 25 13:26:25 2006
@@ -517,41 +517,36 @@
 	{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 @@
 	 "\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"},


More information about the Python-checkins mailing list