[pypy-svn] r45024 - in pypy/dist/pypy/interpreter/pyparser: . test

justas at codespeak.net justas at codespeak.net
Fri Jul 13 15:36:02 CEST 2007


Author: justas
Date: Fri Jul 13 15:36:01 2007
New Revision: 45024

Modified:
   pypy/dist/pypy/interpreter/pyparser/astbuilder.py
   pypy/dist/pypy/interpreter/pyparser/test/test_astbuilder_future.py
Log:
Dummy import from __future__ builder functions + tests


Modified: pypy/dist/pypy/interpreter/pyparser/astbuilder.py
==============================================================================
--- pypy/dist/pypy/interpreter/pyparser/astbuilder.py	(original)
+++ pypy/dist/pypy/interpreter/pyparser/astbuilder.py	Fri Jul 13 15:36:01 2007
@@ -879,6 +879,14 @@
     builder.push(ast.From(from_name, names, atoms[0].lineno))
 
 
+def build_future_import_feature(builder, nb):
+    """
+    future_import_feature: NAME [('as'|NAME) NAME]
+
+    Enables python language future imports. Called once per feature imported,
+    no matter how you got to this one particular feature.
+    """
+
 def build_yield_stmt(builder, nb):
     atoms = get_atoms(builder, nb)
     builder.push(ast.Yield(atoms[1], atoms[0].lineno))
@@ -1038,7 +1046,8 @@
     'while_stmt' : build_while_stmt,
     'import_name' : build_import_name,
     'import_from' : build_import_from,
-    'future_import_feature': None,
+    'future_import_feature': build_future_import_feature,
+    'import_from_future': build_import_from,
     'yield_stmt' : build_yield_stmt,
     'continue_stmt' : build_continue_stmt,
     'del_stmt' : build_del_stmt,

Modified: pypy/dist/pypy/interpreter/pyparser/test/test_astbuilder_future.py
==============================================================================
--- pypy/dist/pypy/interpreter/pyparser/test/test_astbuilder_future.py	(original)
+++ pypy/dist/pypy/interpreter/pyparser/test/test_astbuilder_future.py	Fri Jul 13 15:36:01 2007
@@ -1,6 +1,7 @@
-from pypy.interpreter.pyparser.astbuilder import AstBuilder
 from pypy.interpreter.pyparser.grammar import Parser
 from pypy.interpreter.pyparser.pytoken import setup_tokens
+from pypy.interpreter.pyparser import astbuilder
+
 from fakes import FakeSpace
 
 
@@ -25,13 +26,27 @@
         return self.tokens[ tok ]
 
 
+class RuleStub:
+    def __init__(self, name, root=False):
+        self.codename = name
+        self.root = root
+    is_root = lambda self: self.root
+
+
 class TestBuilderFuture:
     def setup_class(self):
         self.parser = ParserStub()
         setup_tokens(self.parser)
 
     def setup_method(self, method):
-        self.builder = AstBuilder(self.parser, space=FakeSpace())
+        self.builder = astbuilder.AstBuilder(self.parser, space=FakeSpace())
 
     def test_future_rules(self):
-        assert 'future_import_feature' in self.builder.build_rules
+        assert (self.builder.build_rules['future_import_feature'] is
+                astbuilder.build_future_import_feature)
+        assert (self.builder.build_rules['import_from_future'] is
+                astbuilder.build_import_from)
+
+    def test_future_import(self):
+        #self.builder.push(RuleStub('future_import_feature', root=True))
+        pass



More information about the Pypy-commit mailing list