########################################################################
# $Header: /var/local/cvsroot/4Suite/test/Xml/Xslt/Exslt/test_dynamic.py,v 1.1.2.4 2006/10/12 04:45:45 mbrown Exp $
"""Tests for EXSLT Dynamic"""
from Xml.Xslt import test_harness
TESTS = []
SOURCE = """"""
# dyn:evaluate()
def test_evaluate(tester):
TRANSFORM = """
"""
EXPECTED = '\notuabuoatoano'
source = test_harness.FileInfo(string=SOURCE)
transform = test_harness.FileInfo(string=TRANSFORM)
test_harness.XsltTest(tester, source, [transform], EXPECTED,
title='dyn:evaluate()')
return
TESTS.append(test_evaluate)
# dyn:map()
def test_map1(tester):
TRANSFORM = """
"""
EXPECTED = '\n1234'
source = test_harness.FileInfo(string=SOURCE)
transform = test_harness.FileInfo(string=TRANSFORM)
test_harness.XsltTest(tester, source, [transform], EXPECTED,
title='dyn:map()')
return
TESTS.append(test_map1)
SOURCE2 = """1234"""
def test_map2(tester):
TRANSFORM = """
"""
EXPECTED = '\n1234'
source = test_harness.FileInfo(string=SOURCE2)
transform = test_harness.FileInfo(string=TRANSFORM)
test_harness.XsltTest(tester, source, [transform], EXPECTED,
title='dyn:map() w/string expr')
return
TESTS.append(test_map2)
def test_map3(tester):
TRANSFORM = """
"""
EXPECTED = '\n1234'
source = test_harness.FileInfo(string=SOURCE2)
transform = test_harness.FileInfo(string=TRANSFORM)
test_harness.XsltTest(tester, source, [transform], EXPECTED,
title='dyn:map() w/numeric expr')
return
TESTS.append(test_map3)
def test_map4(tester):
TRANSFORM = """
"""
EXPECTED = '\ntruetrue'
source = test_harness.FileInfo(string=SOURCE2)
transform = test_harness.FileInfo(string=TRANSFORM)
test_harness.XsltTest(tester, source, [transform], EXPECTED,
title='dyn:map() w/boolean expr')
return
TESTS.append(test_map4)
def test_map5(tester):
INVALID_EXPRS = ['', '%', 'not()']
TRANSFORM = """
"""
EXPECTED = '\n'
for invalid_expr in INVALID_EXPRS:
source = test_harness.FileInfo(string=SOURCE2)
transform = test_harness.FileInfo(string=TRANSFORM % invalid_expr)
test_harness.XsltTest(tester, source, [transform], EXPECTED,
title="dyn:map() w/invalid expr %r" % invalid_expr)
return
TESTS.append(test_map5)
# dyn:closure()
#FIXME: Not a very good test: exercises closure logic, but not dynamic expression evaluation
def test_closure(tester):
TRANSFORM = """
"""
SOURCE2 = """"""
EXPECTED = '\n246'
source = test_harness.FileInfo(string=SOURCE2)
transform = test_harness.FileInfo(string=TRANSFORM)
test_harness.XsltTest(tester, source, [transform], EXPECTED,
title='dyn:closure()')
return
TESTS.append(test_closure)
def Test(tester):
tester.startGroup('EXSLT Dynamic module')
for test in TESTS:
test(tester)
tester.groupDone()
return