Home | History | Annotate | Download | only in xstc
      1 <?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 
     16 import xstc
     17 from xstc import XSTCTestRunner, XSTCTestGroup, XSTCSchemaTest, XSTCInstanceTest
     18 
     19 xstc.vendor = "</xsl:text><xsl:value-of select="$vendor"/><xsl:text>"
     20 
     21 r = 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            
     36 r.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         
    114 </xsl:stylesheet>