blob: 78d55cd664dc5916ee5d2fda49da923ae95dff6e [file] [log] [blame]
Kasimier T. Buchcik1ace2032005-06-08 17:15:58 +00001<?xml version="1.0" encoding="UTF-8" ?>
2<xsl:stylesheet
3 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
4 xmlns:ts="TestSuite" version="1.0"
5 xmlns:xl="http://www.w3.org/1999/xlink">
6 <xsl:param name="vendor" select="'NIST'"/>
7 <xsl:output method="text"/>
8
9 <xsl:template match="/">
10 <xsl:text>#!/usr/bin/python -u
11# -*- coding: UTF-8 -*-
12#
13# This file is generated from the W3C test suite description file.
14#
15
16import xstc
17from xstc import XSTCTestRunner, XSTCTestGroup, XSTCSchemaTest, XSTCInstanceTest
18
19xstc.vendor = "</xsl:text><xsl:value-of select="$vendor"/><xsl:text>"
20
21r = XSTCTestRunner()
22
23# Group definitions.
24
25</xsl:text>
26
27 <xsl:apply-templates select="ts:testSet/ts:testGroup" mode="group-def"/>
28<xsl:text>
29
30# Test definitions.
31
32</xsl:text>
33 <xsl:apply-templates select="ts:testSet/ts:testGroup" mode="test-def"/>
34 <xsl:text>
35
36r.run()
37
38</xsl:text>
39
40 </xsl:template>
41
42 <!-- groupName, descr -->
43 <xsl:template match="ts:testGroup" mode="group-def">
44 <xsl:text>r.addGroup(XSTCTestGroup("</xsl:text>
45 <!-- group -->
46 <xsl:value-of select="@name"/><xsl:text>", "</xsl:text>
47 <!-- main schema -->
48 <xsl:value-of select="ts:schemaTest[1]/ts:schemaDocument/@xl:href"/><xsl:text>", """</xsl:text>
49 <!-- group-description -->
50 <xsl:call-template name="str">
51 <xsl:with-param name="str" select="ts:annotation/ts:documentation/text()"/>
52 </xsl:call-template>
53 <xsl:text>"""))
54</xsl:text>
55 </xsl:template>
56
57 <xsl:template name="str">
58 <xsl:param name="str"/>
59 <xsl:choose>
60 <xsl:when test="contains($str, '&quot;')">
61 <xsl:call-template name="str">
62 <xsl:with-param name="str" select="substring-before($str, '&quot;')"/>
63 </xsl:call-template>
64 <xsl:text>'</xsl:text>
65 <xsl:call-template name="str">
66 <xsl:with-param name="str" select="substring-after($str, '&quot;')"/>
67 </xsl:call-template>
68
69 </xsl:when>
70 <xsl:otherwise>
71 <xsl:value-of select="$str"/>
72 </xsl:otherwise>
73 </xsl:choose>
74 </xsl:template>
75
76 <xsl:template match="ts:testGroup" mode="test-def">
77 <xsl:param name="group" select="@name"/>
78 <xsl:for-each select="ts:schemaTest">
79 <!-- groupName, isSchema, Name, Accepted, File, Val, Descr -->
80 <xsl:text>r.addTest(XSTCSchemaTest("</xsl:text>
81 <!-- group -->
82 <xsl:value-of select="$group"/><xsl:text>", "</xsl:text>
83 <!-- test-name -->
84 <xsl:value-of select="@name"/><xsl:text>", </xsl:text>
85 <!-- accepted -->
86 <xsl:value-of select="number(ts:current/@status = 'accepted')"/><xsl:text>, "</xsl:text>
87 <!-- filename -->
88 <xsl:value-of select="ts:schemaDocument/@xl:href"/><xsl:text>", </xsl:text>
89 <!-- validity -->
90 <xsl:value-of select="number(ts:expected/@validity = 'valid')"/><xsl:text>, "</xsl:text>
91 <!-- test-description -->
92 <xsl:value-of select="ts:annotation/ts:documentation/text()"/><xsl:text>"))
93</xsl:text>
94 </xsl:for-each>
95 <xsl:for-each select="ts:instanceTest">
96 <!-- groupName, isSchema, Name, Accepted, File, Val, Descr -->
97 <xsl:text>r.addTest(XSTCInstanceTest("</xsl:text>
98 <!-- group -->
99 <xsl:value-of select="$group"/><xsl:text>", "</xsl:text>
100 <!-- test-name -->
101 <xsl:value-of select="@name"/><xsl:text>", </xsl:text>
102 <!-- accepted -->
103 <xsl:value-of select="number(ts:current/@status = 'accepted')"/><xsl:text>, "</xsl:text>
104 <!-- filename -->
105 <xsl:value-of select="ts:instanceDocument/@xl:href"/><xsl:text>", </xsl:text>
106 <!-- validity -->
107 <xsl:value-of select="number(ts:expected/@validity = 'valid')"/><xsl:text>, "</xsl:text>
108 <!-- test-description -->
109 <xsl:value-of select="ts:annotation/ts:documentation/text()"/><xsl:text>"))
110</xsl:text>
111 </xsl:for-each>
112 </xsl:template>
113
Kasimier T. Buchcikcbddfe82005-06-27 12:03:41 +0000114</xsl:stylesheet>