2005-06-08 17:15:58 +00:00
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ts="TestSuite" version="1.0"
xmlns:xl="http://www.w3.org/1999/xlink">
<xsl:param name= "vendor" select= "'NIST'" />
<xsl:output method= "text" />
<xsl:template match= "/" >
<xsl:text > #!/usr/bin/python -u
# -*- coding: UTF-8 -*-
#
# This file is generated from the W3C test suite description file.
#
import xstc
from xstc import XSTCTestRunner, XSTCTestGroup, XSTCSchemaTest, XSTCInstanceTest
xstc.vendor = "</xsl:text> <xsl:value-of select= "$vendor" /> <xsl:text > "
r = XSTCTestRunner()
# Group definitions.
</xsl:text>
<xsl:apply-templates select= "ts:testSet/ts:testGroup" mode= "group-def" />
<xsl:text >
# Test definitions.
</xsl:text>
<xsl:apply-templates select= "ts:testSet/ts:testGroup" mode= "test-def" />
<xsl:text >
r.run()
</xsl:text>
</xsl:template>
<!-- groupName, descr -->
<xsl:template match= "ts:testGroup" mode= "group-def" >
<xsl:text > r.addGroup(XSTCTestGroup("</xsl:text>
<!-- group -->
<xsl:value-of select= "@name" /> <xsl:text > ", "</xsl:text>
<!-- main schema -->
<xsl:value-of select= "ts:schemaTest[1]/ts:schemaDocument/@xl:href" /> <xsl:text > ", """</xsl:text>
<!-- group - description -->
<xsl:call-template name= "str" >
<xsl:with-param name= "str" select= "ts:annotation/ts:documentation/text()" />
</xsl:call-template>
<xsl:text > """))
</xsl:text>
</xsl:template>
<xsl:template name= "str" >
<xsl:param name= "str" />
<xsl:choose >
<xsl:when test= "contains($str, '"')" >
<xsl:call-template name= "str" >
<xsl:with-param name= "str" select= "substring-before($str, '"')" />
</xsl:call-template>
<xsl:text > '</xsl:text>
<xsl:call-template name= "str" >
<xsl:with-param name= "str" select= "substring-after($str, '"')" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise >
<xsl:value-of select= "$str" />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match= "ts:testGroup" mode= "test-def" >
<xsl:param name= "group" select= "@name" />
<xsl:for-each select= "ts:schemaTest" >
<!-- groupName, isSchema, Name, Accepted, File, Val, Descr -->
<xsl:text > r.addTest(XSTCSchemaTest("</xsl:text>
<!-- group -->
<xsl:value-of select= "$group" /> <xsl:text > ", "</xsl:text>
<!-- test - name -->
<xsl:value-of select= "@name" /> <xsl:text > ", </xsl:text>
<!-- accepted -->
<xsl:value-of select= "number(ts:current/@status = 'accepted')" /> <xsl:text > , "</xsl:text>
<!-- filename -->
<xsl:value-of select= "ts:schemaDocument/@xl:href" /> <xsl:text > ", </xsl:text>
<!-- validity -->
<xsl:value-of select= "number(ts:expected/@validity = 'valid')" /> <xsl:text > , "</xsl:text>
<!-- test - description -->
<xsl:value-of select= "ts:annotation/ts:documentation/text()" /> <xsl:text > "))
</xsl:text>
</xsl:for-each>
<xsl:for-each select= "ts:instanceTest" >
<!-- groupName, isSchema, Name, Accepted, File, Val, Descr -->
<xsl:text > r.addTest(XSTCInstanceTest("</xsl:text>
<!-- group -->
<xsl:value-of select= "$group" /> <xsl:text > ", "</xsl:text>
<!-- test - name -->
<xsl:value-of select= "@name" /> <xsl:text > ", </xsl:text>
<!-- accepted -->
<xsl:value-of select= "number(ts:current/@status = 'accepted')" /> <xsl:text > , "</xsl:text>
<!-- filename -->
<xsl:value-of select= "ts:instanceDocument/@xl:href" /> <xsl:text > ", </xsl:text>
<!-- validity -->
<xsl:value-of select= "number(ts:expected/@validity = 'valid')" /> <xsl:text > , "</xsl:text>
<!-- test - description -->
<xsl:value-of select= "ts:annotation/ts:documentation/text()" /> <xsl:text > "))
</xsl:text>
</xsl:for-each>
</xsl:template>
2005-06-27 12:03:41 +00:00
</xsl:stylesheet>