Edgewall Software

Changeset 1090


Ignore:
Timestamp:
Nov 13, 2009, 11:31:04 PM (14 years ago)
Author:
cmlenz
Message:

Add unit tests for correct handling of with statements and yield expressions in the AST code generator.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/genshi/template/tests/eval.py

    r1077 r1090  
    1313
    1414import doctest
     15import os
    1516import pickle
    1617from StringIO import StringIO
    1718import sys
     19from tempfile import NamedTemporaryFile
    1820import unittest
    1921
     
    784786        self.failIf('k' in d, repr(d))
    785787
     788    if sys.version_info >= (2, 5):
     789        def test_with_statement(self):
     790            f = NamedTemporaryFile()
     791            f.write('foo\nbar\n')
     792            f.seek(0)
     793
     794            d = {'path': f.name}
     795            suite = Suite("""from __future__ import with_statement
     796lines = []
     797with open(path) as file:
     798    for line in file:
     799        lines.append(line)
     800""")
     801            suite.execute(d)
     802            self.assertEqual(['foo\n', 'bar\n'], d['lines'])
     803
     804        def test_yield_expression(self):
     805            d = {}
     806            suite = Suite("""results = []
     807def counter(maximum):
     808    i = 0
     809    while i < maximum:
     810        val = (yield i)
     811        if val is not None:
     812            i = val
     813        else:
     814            i += 1
     815it = counter(5)
     816results.append(it.next())
     817results.append(it.send(3))
     818results.append(it.next())
     819""")
     820            suite.execute(d)
     821            self.assertEqual([0, 3, 4], d['results'])
     822
    786823
    787824def suite():
  • trunk/scripts/ast_generator.py

    r1076 r1090  
    3535
    3636print('# Generated automatically, please do not edit')
    37 print('# Generator can be found in Genshi SVN, scripts/ast-generator.py')
     37print('# Generator can be found in Genshi SVN, scripts/ast_generator.py')
    3838print('')
    3939print('__version__ = %s' % _ast.__version__)
Note: See TracChangeset for help on using the changeset viewer.