summaryrefslogtreecommitdiff
path: root/tests/root
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2009-03-16 23:56:42 +0100
committerGeorg Brandl <georg@python.org>2009-03-16 23:56:42 +0100
commitf6e56aa1a6476048d93897a2e5a20aa376fcf1b4 (patch)
tree3ccec41501f25e8386d626a52d8d7da09040ecdc /tests/root
parent73d7e7c709394974494fb6000c6274f07e79cce5 (diff)
parenta1691a3424ae6b91743db7f37cf4fe86f7c93760 (diff)
downloadsphinx-0.6b1.tar.gz
merge with 0.50.6b1
Diffstat (limited to 'tests/root')
-rw-r--r--tests/root/_templates/layout.html1
-rw-r--r--tests/root/autodoc.txt21
-rw-r--r--tests/root/autosummary.txt7
-rw-r--r--tests/root/conf.py166
-rw-r--r--tests/root/contents.txt5
-rw-r--r--tests/root/desc.txt11
-rw-r--r--tests/root/images.txt3
-rw-r--r--tests/root/includes.txt30
-rw-r--r--tests/root/literal.inc9
-rw-r--r--tests/root/markup.txt39
-rw-r--r--tests/root/rimg.pngbin0 -> 218 bytes
-rw-r--r--tests/root/special/code.py2
-rw-r--r--tests/root/subdir/images.txt2
-rw-r--r--tests/root/subdir/includes.txt12
-rw-r--r--tests/root/svgimg.pdfbin0 -> 141783 bytes
-rw-r--r--tests/root/svgimg.svg158
-rw-r--r--tests/root/testtheme/layout.html5
-rw-r--r--tests/root/testtheme/static/staticimg.pngbin0 -> 218 bytes
-rw-r--r--tests/root/testtheme/static/statictmpl.html_t2
-rw-r--r--tests/root/testtheme/theme.conf7
-rw-r--r--tests/root/ziptheme.zipbin0 -> 1039 bytes
21 files changed, 338 insertions, 142 deletions
diff --git a/tests/root/_templates/layout.html b/tests/root/_templates/layout.html
index 1f4688e6..e8920025 100644
--- a/tests/root/_templates/layout.html
+++ b/tests/root/_templates/layout.html
@@ -1,4 +1,5 @@
{% extends "!layout.html" %}
{% block extrahead %}
<meta name="hc" content="{{ hckey }}" />
+{{ super() }}
{% endblock %}
diff --git a/tests/root/autodoc.txt b/tests/root/autodoc.txt
index 2b57e0e9..c718feb4 100644
--- a/tests/root/autodoc.txt
+++ b/tests/root/autodoc.txt
@@ -1,7 +1,28 @@
Autodoc tests
=============
+Just testing a few autodoc possibilities...
+
+.. automodule:: util
+
.. automodule:: test_autodoc
:members:
.. autofunction:: function
+
+.. autoclass:: Class
+ :inherited-members:
+
+ Additional content.
+
+.. autoclass:: Outer
+ :members: Inner
+
+.. autoattribute:: Class.docattr
+
+.. autoexception:: CustomEx
+ :members: f
+
+.. autoclass:: CustomDict
+ :show-inheritance:
+ :members:
diff --git a/tests/root/autosummary.txt b/tests/root/autosummary.txt
new file mode 100644
index 00000000..edf75e32
--- /dev/null
+++ b/tests/root/autosummary.txt
@@ -0,0 +1,7 @@
+Autosummary test
+================
+
+.. autosummary::
+ :toctree: generated
+
+ sphinx.application.TemplateBridge
diff --git a/tests/root/conf.py b/tests/root/conf.py
index 12951d03..fd82be7d 100644
--- a/tests/root/conf.py
+++ b/tests/root/conf.py
@@ -1,183 +1,71 @@
# -*- coding: utf-8 -*-
-#
-# Sphinx Tests documentation build configuration file, created by
-# sphinx-quickstart on Wed Jun 4 23:49:58 2008.
-#
-# This file is execfile()d with the current directory set to its containing dir.
-#
-# The contents of this file are pickled, so don't put values in the namespace
-# that aren't pickleable (module imports are okay, they're removed automatically).
-#
-# All configuration values have a default value; values that are commented out
-# serve to show the default value.
import sys, os
-# If your extensions are in another directory, add it here. If the directory
-# is relative to the documentation root, use os.path.abspath to make it
-# absolute, like shown here.
sys.path.append(os.path.abspath('.'))
-# General configuration
-# ---------------------
-
-# Add any Sphinx extension module names here, as strings. They can be extensions
-# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
extensions = ['ext', 'sphinx.ext.autodoc', 'sphinx.ext.jsmath',
- 'sphinx.ext.coverage', 'sphinx.ext.todo']
+ 'sphinx.ext.coverage', 'sphinx.ext.todo',
+ 'sphinx.ext.autosummary']
+
jsmath_path = 'dummy.js'
-# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
-# The suffix of source filenames.
-source_suffix = '.txt'
-
-# The master toctree document.
master_doc = 'contents'
+source_suffix = '.txt'
-# General substitutions.
project = 'Sphinx <Tests>'
copyright = '2008, Georg Brandl & Team'
-
-# The default replacements for |version| and |release|, also used in various
-# other places throughout the built documents.
-#
-# The short X.Y version.
-version = '0.4'
-# The full version, including alpha/beta/rc tags.
-release = '0.4alpha1'
-
-# There are two options for replacing |today|: either, you set today to some
-# non-false value, then it is used:
-#today = ''
-# Else, today_fmt is used as the format for a strftime call.
+# If this is changed, remember to update the versionchanges!
+version = '0.6'
+release = '0.6alpha1'
today_fmt = '%B %d, %Y'
-
-# List of documents that shouldn't be included in the build.
#unused_docs = []
-
-# List of directories, relative to source directories, that shouldn't be searched
-# for source files.
exclude_trees = ['_build']
-
keep_warnings = True
-
-# If true, '()' will be appended to :func: etc. cross-reference text.
-#add_function_parentheses = True
-
-# If true, the current module name will be prepended to all description
-# unit titles (such as .. function::).
-#add_module_names = True
-
-# If true, sectionauthor and moduleauthor directives will be shown in the
-# output. They are ignored by default.
-#show_authors = False
-
-# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
+rst_epilog = '.. |subst| replace:: global substitution'
-# Options for HTML output
-# -----------------------
+html_theme = 'testtheme'
+html_theme_path = ['.']
+html_theme_options = {'testopt': 'testoverride'}
-# The style sheet to use for HTML and HTML Help pages. A file of that name
-# must exist either in Sphinx' static/ path, or in one of the custom paths
-# given in html_static_path.
html_style = 'default.css'
-
-# The name for this set of Sphinx documents. If None, it defaults to
-# "<project> v<release> documentation".
-#html_title = None
-
-# A shorter title for the navigation bar. Default is the same as html_title.
-#html_short_title = None
-
-# The name of an image file (within the static path) to place at the top of
-# the sidebar.
-#html_logo = None
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']
-
-# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
-# using the given strftime format.
html_last_updated_fmt = '%b %d, %Y'
-
-# If true, SmartyPants will be used to convert quotes and dashes to
-# typographically correct entities.
-#html_use_smartypants = True
-
-# Custom sidebar templates, maps document names to template names.
-#html_sidebars = {}
-
-# Additional templates that should be rendered to pages, maps page names to
-# template names.
-#html_additional_pages = {}
-
-# If false, no module index is generated.
-#html_use_modindex = True
-
-# If false, no index is generated.
-#html_use_index = True
-
-# If true, the reST sources are included in the HTML build as _sources/<name>.
-#html_copy_source = True
-
-# If true, an OpenSearch description file will be output, and all pages will
-# contain a <link> tag referring to it. The value of this option must be the
-# base URL from which the finished HTML is served.
-#html_use_opensearch = ''
-
-# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml").
-#html_file_suffix = ''
-
html_context = {'hckey': 'hcval'}
-# Output file base name for HTML help builder.
htmlhelp_basename = 'SphinxTestsdoc'
-
-# Options for LaTeX output
-# ------------------------
-
-# The paper size ('letter' or 'a4').
-#latex_paper_size = 'letter'
-
-# The font size ('10pt', '11pt' or '12pt').
-#latex_font_size = '10pt'
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title, author, document class [howto/manual]).
latex_documents = [
('contents', 'SphinxTests.tex', 'Sphinx Tests Documentation',
'Georg Brandl', 'manual'),
]
-# The name of an image file (relative to this directory) to place at the top of
-# the title page.
-#latex_logo = None
-
-# For "manual" documents, if this is true, then toplevel headings are parts,
-# not chapters.
-#latex_use_parts = False
-
-# Additional stuff for the LaTeX preamble.
-#latex_preamble = ''
-
-# Documents to append as an appendix to all manuals.
-#latex_appendices = []
-
-# If false, no module index is generated.
-#latex_use_modindex = True
+latex_additional_files = ['svgimg.svg']
value_from_conf_py = 84
coverage_c_path = ['special/*.h']
coverage_c_regexes = {'cfunction': r'^PyAPI_FUNC\(.*\)\s+([^_][\w_]+)'}
+autosummary_generate = ['autosummary']
+
+# modify tags from conf.py
+tags.add('confpytag')
+
+from sphinx import addnodes
+
+def userdesc_parse(env, sig, signode):
+ x, y = sig.split(':')
+ signode += addnodes.desc_name(x, x)
+ signode += addnodes.desc_parameterlist()
+ signode[-1] += addnodes.desc_parameter(y, y)
+ return x
def setup(app):
app.add_config_value('value_from_conf_py', 42, False)
+ app.add_description_unit('userdesc', 'userdescrole', '%s (userdesc)',
+ userdesc_parse)
diff --git a/tests/root/contents.txt b/tests/root/contents.txt
index 61646f62..24d790a5 100644
--- a/tests/root/contents.txt
+++ b/tests/root/contents.txt
@@ -9,14 +9,19 @@ Contents:
.. toctree::
:maxdepth: 2
+ :numbered:
images
subdir/images
+ subdir/includes
includes
markup
desc
math
autodoc
+ autosummary
+
+ Python <http://python.org/>
Indices and tables
==================
diff --git a/tests/root/desc.txt b/tests/root/desc.txt
index beb470b6..d6915dc2 100644
--- a/tests/root/desc.txt
+++ b/tests/root/desc.txt
@@ -58,3 +58,14 @@ Testing references
==================
Referencing :class:`mod.Cls` or :Class:`mod.Cls` should be the same.
+
+
+User markup
+===========
+
+.. userdesc:: myobj:parameter
+
+ Description of userdesc.
+
+
+Referencing :userdescrole:`myobj`.
diff --git a/tests/root/images.txt b/tests/root/images.txt
index be868dfe..bd64d573 100644
--- a/tests/root/images.txt
+++ b/tests/root/images.txt
@@ -23,3 +23,6 @@ Sphinx image handling
.. an image with subdir and unspecified extension
.. image:: subdir/simg.*
+
+.. an SVG image (for HTML at least)
+.. image:: svgimg.*
diff --git a/tests/root/includes.txt b/tests/root/includes.txt
index ad507fc6..44e33af0 100644
--- a/tests/root/includes.txt
+++ b/tests/root/includes.txt
@@ -14,3 +14,33 @@ Test file and literal inclusion
:encoding: latin-1
.. include:: wrongenc.inc
:encoding: latin-1
+
+Literalinclude options
+======================
+
+.. highlight:: text
+
+.. cssclass:: inc-pyobj1
+.. literalinclude:: literal.inc
+ :pyobject: Foo
+
+.. cssclass:: inc-pyobj2
+.. literalinclude:: literal.inc
+ :pyobject: Bar.baz
+
+.. cssclass:: inc-lines
+.. literalinclude:: literal.inc
+ :lines: 6-7,9
+
+.. cssclass:: inc-startend
+.. literalinclude:: literal.inc
+ :start-after: coding: utf-8
+ :end-before: class Foo
+
+
+Testing downloadable files
+==========================
+
+Download :download:`img.png` here.
+Download :download:`this <subdir/img.png>` there.
+Don't download :download:`this <nonexisting.png>`.
diff --git a/tests/root/literal.inc b/tests/root/literal.inc
index a4ce93d2..d5b9890c 100644
--- a/tests/root/literal.inc
+++ b/tests/root/literal.inc
@@ -2,3 +2,12 @@
# -*- coding: utf-8 -*-
foo = u"Including Unicode characters: üöä"
+
+class Foo:
+ pass
+
+class Bar:
+ def baz():
+ pass
+
+def bar(): pass
diff --git a/tests/root/markup.txt b/tests/root/markup.txt
index 454762e3..52d407e2 100644
--- a/tests/root/markup.txt
+++ b/tests/root/markup.txt
@@ -11,6 +11,8 @@ Testing various markup
:author: Me
:keywords: docs, sphinx
+A |subst|.
+
.. _label:
::
@@ -82,13 +84,13 @@ Tables
Version markup
--------------
-.. versionadded:: 0.5
+.. versionadded:: 0.6
Some funny **stuff**.
-.. versionchanged:: 0.5
+.. versionchanged:: 0.6
Even more funny stuff.
-.. deprecated:: 0.4
+.. deprecated:: 0.6
Boring stuff.
@@ -104,6 +106,16 @@ Reference lookup: [Ref1]_ (defined in another file).
`Google <http://www.google.com>`_
For everything.
+.. hlist::
+ :columns: 4
+
+ * This
+ * is
+ * a horizontal
+ * list
+ * with several
+ * items
+
.. rubric:: Side note
This is a side note.
@@ -140,6 +152,7 @@ Option list:
try2_stmt: "try" ":" `suite`
: "finally" ":" `suite`
+Test :abbr:`abbr (abbreviation)` and another :abbr:`abbr (abbreviation)`.
Index markup
------------
@@ -164,6 +177,26 @@ Invalid index markup...
Testing öäü...
+Only directive
+--------------
+
+.. only:: html
+
+ In HTML.
+
+.. only:: latex
+
+ In LaTeX.
+
+.. only:: html or latex
+
+ In both.
+
+.. only:: confpytag and (testtag or nonexisting_tag)
+
+ Always present, because set through conf.py/command line.
+
+
.. rubric:: Footnotes
.. [#] Like footnotes.
diff --git a/tests/root/rimg.png b/tests/root/rimg.png
new file mode 100644
index 00000000..1081dc14
--- /dev/null
+++ b/tests/root/rimg.png
Binary files differ
diff --git a/tests/root/special/code.py b/tests/root/special/code.py
new file mode 100644
index 00000000..70c48d2e
--- /dev/null
+++ b/tests/root/special/code.py
@@ -0,0 +1,2 @@
+print "line 1"
+print "line 2"
diff --git a/tests/root/subdir/images.txt b/tests/root/subdir/images.txt
index 33adf5b5..f2adf88d 100644
--- a/tests/root/subdir/images.txt
+++ b/tests/root/subdir/images.txt
@@ -2,3 +2,5 @@ Image including source in subdir
================================
.. image:: img.*
+
+.. image:: /rimg.png
diff --git a/tests/root/subdir/includes.txt b/tests/root/subdir/includes.txt
new file mode 100644
index 00000000..3e1ae0d1
--- /dev/null
+++ b/tests/root/subdir/includes.txt
@@ -0,0 +1,12 @@
+Including in subdir
+===================
+
+.. absolute filename
+.. literalinclude:: /special/code.py
+ :lines: 1
+
+.. relative filename
+.. literalinclude:: ../special/code.py
+ :lines: 2
+
+Absolute :download:`/img.png` download.
diff --git a/tests/root/svgimg.pdf b/tests/root/svgimg.pdf
new file mode 100644
index 00000000..cacbd855
--- /dev/null
+++ b/tests/root/svgimg.pdf
Binary files differ
diff --git a/tests/root/svgimg.svg b/tests/root/svgimg.svg
new file mode 100644
index 00000000..10e035b6
--- /dev/null
+++ b/tests/root/svgimg.svg
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ height="60"
+ width="60"
+ _SVGFile__filename="oldscale/apps/warning.svg"
+ version="1.0"
+ y="0"
+ x="0"
+ id="svg1"
+ sodipodi:version="0.32"
+ inkscape:version="0.41"
+ sodipodi:docname="exclamation.svg"
+ sodipodi:docbase="/home/danny/work/icons/primary/scalable/actions">
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0000000"
+ inkscape:pageshadow="2"
+ inkscape:zoom="7.5136000"
+ inkscape:cx="42.825186"
+ inkscape:cy="24.316071"
+ inkscape:window-width="1020"
+ inkscape:window-height="691"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:current-layer="svg1" />
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient1160">
+ <stop
+ style="stop-color: #000000;stop-opacity: 1.0;"
+ id="stop1161"
+ offset="0" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ id="stop1162"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ xlink:href="#linearGradient1160"
+ id="linearGradient1163" />
+ </defs>
+ <metadata
+ id="metadata12">
+ <RDF
+ id="RDF13">
+ <Work
+ about=""
+ id="Work14">
+ <title
+ id="title15">Part of the Flat Icon Collection (Thu Aug 26 14:31:40 2004)</title>
+ <description
+ id="description17" />
+ <subject
+ id="subject18">
+ <Bag
+ id="Bag19">
+ <li
+ id="li20" />
+ </Bag>
+ </subject>
+ <publisher
+ id="publisher21">
+ <Agent
+ about=""
+ id="Agent22">
+ <title
+ id="title23" />
+ </Agent>
+ </publisher>
+ <creator
+ id="creator24">
+ <Agent
+ about=""
+ id="Agent25">
+ <title
+ id="title26">Danny Allen</title>
+ </Agent>
+ </creator>
+ <rights
+ id="rights28">
+ <Agent
+ about=""
+ id="Agent29">
+ <title
+ id="title30">Danny Allen</title>
+ </Agent>
+ </rights>
+ <date
+ id="date32" />
+ <format
+ id="format33">image/svg+xml</format>
+ <type
+ id="type35"
+ resource="http://purl.org/dc/dcmitype/StillImage" />
+ <license
+ id="license36"
+ resource="http://creativecommons.org/licenses/LGPL/2.1/">
+ <date
+ id="date37" />
+ </license>
+ <language
+ id="language38">en</language>
+ </Work>
+ </RDF>
+ <rdf:RDF
+ id="RDF40">
+ <cc:Work
+ rdf:about=""
+ id="Work41">
+ <dc:format
+ id="format42">image/svg+xml</dc:format>
+ <dc:type
+ id="type44"
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="g2099">
+ <path
+ style="color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:8.1250000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ d="M 55.311891,51.920745 L 4.6880989,51.920744 L 29.999995,8.0792542 L 55.311891,51.920745 z "
+ id="path1724" />
+ <path
+ style="color:#000000;fill:#ffe940;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:3.1250010;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ d="M 55.311891,51.920745 L 4.6880989,51.920744 L 29.999995,8.0792542 L 55.311891,51.920745 z "
+ id="path1722" />
+ <path
+ style="font-size:12.000000;font-weight:900;fill:none;fill-opacity:1.0000000;stroke:#ffffff;stroke-width:8.1250000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 34.944960,10.779626 L 34.944960,33.186510 C 34.944960,34.752415 34.501979,36.081368 33.616007,37.173380 C 32.750636,38.265402 31.545298,38.811408 29.999995,38.811408 C 28.475302,38.811408 27.269965,38.265402 26.383993,37.173380 C 25.498020,36.060767 25.055030,34.731804 25.055030,33.186510 L 25.055030,10.779626 C 25.055030,9.1931155 25.498020,7.8641562 26.383993,6.7927462 C 27.269965,5.7007332 28.475302,5.1547262 29.999995,5.1547262 C 31.009593,5.1547262 31.885265,5.4019740 32.627010,5.8964706 C 33.389356,6.3909681 33.966274,7.0709005 34.357752,7.9362696 C 34.749221,8.7810349 34.944960,9.7288200 34.944960,10.779626 z "
+ id="path1099" />
+ <path
+ style="font-size:12.000000;font-weight:900;fill:#e71c02;fill-opacity:1.0000000;stroke:none;stroke-width:3.1249981;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1.0000000"
+ d="M 29.999995,3.5986440 C 28.102272,3.5986440 26.318514,4.3848272 25.156245,5.8173940 C 24.028906,7.1806889 23.499995,8.9087770 23.499995,10.786144 L 23.499995,33.192394 C 23.499995,35.036302 24.050685,36.772771 25.156245,38.161144 C 26.318514,39.593721 28.102273,40.379893 29.999995,40.379894 C 31.913354,40.379894 33.697195,39.576736 34.843745,38.129894 C 35.959941,36.754118 36.499995,35.052976 36.499995,33.192394 L 36.499995,10.786144 C 36.499995,9.5413010 36.276626,8.3551469 35.781245,7.2861440 C 35.278844,6.1755772 34.477762,5.2531440 33.468745,4.5986440 C 32.454761,3.9226545 31.264694,3.5986439 29.999995,3.5986440 z "
+ id="path835"
+ sodipodi:nodetypes="cccccccccccc" />
+ <path
+ style="color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:5.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ d="M 36.506243,49.901522 C 36.506243,53.492972 33.591442,56.407773 29.999991,56.407773 C 26.408541,56.407773 23.493739,53.492972 23.493739,49.901522 C 23.493739,46.310071 26.408541,43.395270 29.999991,43.395270 C 33.591442,43.395270 36.506243,46.310071 36.506243,49.901522 z "
+ id="path1727" />
+ <path
+ style="color:#000000;fill:#e71c02;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:3.1250000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none"
+ d="M 36.506243,49.901522 C 36.506243,53.492972 33.591442,56.407773 29.999991,56.407773 C 26.408541,56.407773 23.493739,53.492972 23.493739,49.901522 C 23.493739,46.310071 26.408541,43.395270 29.999991,43.395270 C 33.591442,43.395270 36.506243,46.310071 36.506243,49.901522 z "
+ id="path1725" />
+ </g>
+</svg>
diff --git a/tests/root/testtheme/layout.html b/tests/root/testtheme/layout.html
new file mode 100644
index 00000000..81372be0
--- /dev/null
+++ b/tests/root/testtheme/layout.html
@@ -0,0 +1,5 @@
+{% extends "basic/layout.html" %}
+{% block extrahead %}
+<meta name="testopt" content="{{ theme_testopt }}" />
+{{ super() }}
+{% endblock %}
diff --git a/tests/root/testtheme/static/staticimg.png b/tests/root/testtheme/static/staticimg.png
new file mode 100644
index 00000000..1081dc14
--- /dev/null
+++ b/tests/root/testtheme/static/staticimg.png
Binary files differ
diff --git a/tests/root/testtheme/static/statictmpl.html_t b/tests/root/testtheme/static/statictmpl.html_t
new file mode 100644
index 00000000..4ab292b4
--- /dev/null
+++ b/tests/root/testtheme/static/statictmpl.html_t
@@ -0,0 +1,2 @@
+<!-- testing static templates -->
+<html><project>{{ project|e }}</project></html>
diff --git a/tests/root/testtheme/theme.conf b/tests/root/testtheme/theme.conf
new file mode 100644
index 00000000..a8776737
--- /dev/null
+++ b/tests/root/testtheme/theme.conf
@@ -0,0 +1,7 @@
+[theme]
+inherit = basic
+stylesheet = default.css
+pygments_style = emacs
+
+[options]
+testopt = optdefault
diff --git a/tests/root/ziptheme.zip b/tests/root/ziptheme.zip
new file mode 100644
index 00000000..8a246ed9
--- /dev/null
+++ b/tests/root/ziptheme.zip
Binary files differ