ss_20010301.py :  » XML » 4Suite » 4Suite-XML-1.0.2 » test » Xml » Xslt » Borrowed » Python Open Source

Home
Python Open Source
1.3.1.2 Python
2.Ajax
3.Aspect Oriented
4.Blog
5.Build
6.Business Application
7.Chart Report
8.Content Management Systems
9.Cryptographic
10.Database
11.Development
12.Editor
13.Email
14.ERP
15.Game 2D 3D
16.GIS
17.GUI
18.IDE
19.Installer
20.IRC
21.Issue Tracker
22.Language Interface
23.Log
24.Math
25.Media Sound Audio
26.Mobile
27.Network
28.Parser
29.PDF
30.Project Management
31.RSS
32.Search
33.Security
34.Template Engines
35.Test
36.UML
37.USB Serial
38.Web Frameworks
39.Web Server
40.Web Services
41.Web Unit
42.Wiki
43.Windows
44.XML
Python Open Source » XML » 4Suite 
4Suite » 4Suite XML 1.0.2 » test » Xml » Xslt » Borrowed » ss_20010301.py
#Stefan Seefeld <seefeld@sympatico.ca> has trouble with the docbook stylesheets

import os, re

from Xml.Xslt import test_harness

from Ft.Lib.Uri import OsPathToUri

# The name of the environment variable that will indicate
# the location of DocBook XSL docbook-xsl-#.#.# directory
KEYNAME = 'DOCBOOK_HOME'

source_1 = """\
<book>
  <chapter>
    <title>Chapter</title>
    <sect1>
      <title>Sect1</title>
      <sect2>
        <title>Sect2</title>
      </sect2>
    </sect1>
  </chapter>
</book>
"""

MIN_VERSION = '1.64.0'
# NOTE: there is a '%s' for the actual version of docbook used
#
# docbook-xsl-1.68.0 and up
expected_1_1680 = """\
<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title></title><meta content="DocBook XSL Stylesheets V%s" name="generator"></head><body alink="#0000FF" bgcolor="white" vlink="#840084" link="#0000FF" text="black"><div lang="en" class="book"><div class="titlepage"><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="#id3">1. Chapter</a></span></dt><dd><dl><dt><span class="sect1"><a href="#id2">Sect1</a></span></dt><dd><dl><dt><span class="sect2"><a href="#id1">Sect2</a></span></dt></dl></dd></dl></dd></dl></div><div lang="en" class="chapter"><div class="titlepage"><div><div><h2 class="title"><a name="id3"></a>Chapter&nbsp;1.&nbsp;Chapter</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="#id2">Sect1</a></span></dt><dd><dl><dt><span class="sect2"><a href="#id1">Sect2</a></span></dt></dl></dd></dl></div><div lang="en" class="sect1"><div class="titlepage"><div><div><h2 style="clear: both" class="title"><a name="id2"></a>Sect1</h2></div></div></div><div lang="en" class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="id1"></a>Sect2</h3></div></div></div></div></div></div></div></body></html>"""

# docbook-xsl-1.64.0(?) and up;
expected_1 = """\
<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"><title></title><meta content="DocBook XSL Stylesheets V%s" name="generator"></head><body alink="#0000FF" bgcolor="white" vlink="#840084" link="#0000FF" text="black"><div lang="en" class="book"><div class="titlepage"><div></div><div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="#id3">1. Chapter</a></span></dt><dd><dl><dt><span class="sect1"><a href="#id2">Sect1</a></span></dt><dd><dl><dt><span class="sect2"><a href="#id1">Sect2</a></span></dt></dl></dd></dl></dd></dl></div><div lang="en" class="chapter"><div class="titlepage"><div><div><h2 class="title"><a name="id3"></a>Chapter&nbsp;1.&nbsp;Chapter</h2></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="#id2">Sect1</a></span></dt><dd><dl><dt><span class="sect2"><a href="#id1">Sect2</a></span></dt></dl></dd></dl></div><div lang="en" class="sect1"><div class="titlepage"><div><div><h2 style="clear: both" class="title"><a name="id2"></a>Sect1</h2></div></div><div></div></div><div lang="en" class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="id1"></a>Sect2</h3></div></div><div></div></div></div></div></div></div></body></html>"""

def Test(tester):
    tester.startTest('Check for DocBook XSL stylesheets')

    dirs = ["/usr/share/sgml/docbook/xsl-stylesheets", #default for docbook-style-xsl RPM
            "/usr/local/share/xsl/docbook", #default for FreeBSD textproc/docbook-xsl port
           ]

    DOCBOOK_DIR = None
    for dir in dirs:
        if os.path.isdir(dir):
            DOCBOOK_DIR = dir
            break

    DOCBOOK_DIR = os.environ.get(KEYNAME, DOCBOOK_DIR)
    if not DOCBOOK_DIR:
        tester.warning(
            "You need Norm Walsh's DocBook XSL stylesheet package for this test.\n"
            "You can either ignore this, or you can install the DocBook XSL\n"
            "stylesheets and re-run this test. Get the docbook-xsl package from\n"
            "http://sourceforge.net/project/showfiles.php?group_id=21935\n"
            "Install it in anywhere, and then before running this test, set\n"
            "the environment variable %r to the absolute path\n"
            "of the docbook-xsl-#.#.# directory on your filesystem.\n"
            % KEYNAME)
        tester.testDone()
        return

    if not os.path.isdir(DOCBOOK_DIR):
        tester.warning("Unable to find DocBook stylesheet directory %r" % DOCBOOK_DIR)
        tester.testDone()
        return

    VERSION_FILE = os.path.join(DOCBOOK_DIR, 'VERSION')
    if os.path.isfile(VERSION_FILE):
        VERSION = open(VERSION_FILE).read()
        match = re.search(r'>\s*(\d[.0-9]+)\s*<', VERSION)
        if not match:
            tester.warning("Unable to determine version of DocBook stylesheets\n"
                           "Format of %r unrecognized." % VERSION_FILE)
            tester.testDone()
            return
        version = match.group(1)
        if version <= MIN_VERSION:
            tester.warning("DocBook XSL version %s or higher needed;"
                           " version %s found." % (MIN_VERSION, version))
            tester.testDone()
            return
    else:
        tester.warning("Unable to determine version of DocBook stylesheets\n"
                       "Was looking for file %r." % VERSION_FILE)
        tester.testDone()
        return

    STYLESHEET = os.path.join(DOCBOOK_DIR, 'html', 'docbook.xsl')
    if not os.path.isfile(STYLESHEET):
        tester.warning("Unable to find DocBook stylesheet %r" % STYLESHEET)
        tester.testDone()
        return

    STYLESHEET_URI = OsPathToUri(STYLESHEET)
    tester.testDone()

    source = test_harness.FileInfo(string=source_1)
    if version >= '1.68':
        expected = expected_1_1680 % version
    else:
        expected = expected_1 % version
    sheet = test_harness.FileInfo(uri=STYLESHEET_URI)
    test_harness.XsltTest(tester, source, [sheet], expected,
        title="Basic DocBook XSL processing")
    return
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.