Documentation skeleton.
This commit is contained in:
parent
e236d7746a
commit
3bc7f4e1cd
25
README.mkd
25
README.mkd
|
@ -3,9 +3,12 @@ __pathod__ is a collection of pathological tools for testing and torturing HTTP
|
|||
clients and servers. The project has three components:
|
||||
|
||||
- __pathod__, an pathological HTTP daemon.
|
||||
- __pathoc__, a fiendishly perverse HTTP client.
|
||||
- __pathoc__, a perverse HTTP client.
|
||||
- __libpathod.test__, an API for easily using __pathod__ and __pathoc__ in unit tests.
|
||||
|
||||
|
||||
# pathod
|
||||
|
||||
At __pathod__'s heart is a tiny, terse language for crafting HTTP responses.
|
||||
The simplest way to use __pathod__ is to fire up the daemon, and specify the
|
||||
response behaviour you want using this language in the request URL. Here's a
|
||||
|
@ -31,8 +34,7 @@ various other goodies. Try it by visiting the server root:
|
|||
|
||||
|
||||
|
||||
Specifying Responses
|
||||
====================
|
||||
## Specifying Responses
|
||||
|
||||
The general form of a response is as follows:
|
||||
|
||||
|
@ -117,8 +119,8 @@ once at 10 bytes and once at 20, then disconnects at 5000:
|
|||
200:b@1m:p10,10:p20,10:d5000
|
||||
|
||||
|
||||
Features
|
||||
========
|
||||
## Features
|
||||
|
||||
|
||||
#### hKEY=VALUE
|
||||
|
||||
|
@ -158,8 +160,9 @@ forever. OFFSET can also be "r" to generate a random offset, or "a" for an
|
|||
offset just after all data has been sent.
|
||||
|
||||
|
||||
Value Specifiers
|
||||
================
|
||||
|
||||
|
||||
## Value Specifiers
|
||||
|
||||
There are three different flavours of value specification.
|
||||
|
||||
|
@ -240,7 +243,7 @@ Supported data types are:
|
|||
bytes
|
||||
|
||||
|
||||
# API
|
||||
## API
|
||||
|
||||
__pathod__ exposes a simple API, intended to make it possible to drive and
|
||||
inspect the daemon remotely for use in unit testing and the like.
|
||||
|
@ -299,6 +302,9 @@ interface.
|
|||
A POST to this URL clears the log buffer.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# Installing
|
||||
|
||||
If you already have __pip__ on your system, installing __pathod__ and its
|
||||
|
@ -307,5 +313,6 @@ dependencies is dead simple:
|
|||
pip install pathod
|
||||
|
||||
The project uses the __nose__ unit testing framework, which you can get here:
|
||||
|
||||
|
||||
FIXME
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,343 @@
|
|||
|
||||
#rsstable {
|
||||
margin-top: 15px;
|
||||
padding: 0px;
|
||||
}
|
||||
#rsstable td {
|
||||
border: 0px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
font-size: 11px;
|
||||
color: #000000;
|
||||
padding-right: 4px;
|
||||
}
|
||||
|
||||
.post {
|
||||
padding: 0px;
|
||||
}
|
||||
.posthead {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
/* title */
|
||||
.posthead h1 {
|
||||
font-size: 2.4em !important;
|
||||
margin: 0 0 0.2em 0;
|
||||
}
|
||||
/* date */
|
||||
.posthead h2 {
|
||||
font-size: 1.0em;
|
||||
color: #999;
|
||||
margin: 0 0 -0.25em 0;
|
||||
font-weight: normal;
|
||||
margin-bottom 5px;
|
||||
}
|
||||
.posthead a {
|
||||
color: #3F8ED8;
|
||||
text-decoration: none;
|
||||
}
|
||||
.posthead a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
sup {
|
||||
vertical-align: text-top;
|
||||
padding: 2px;
|
||||
|
||||
}
|
||||
|
||||
.postbody p {
|
||||
line-height: 1.4em;
|
||||
margin: 1em 0;
|
||||
}
|
||||
.postbody a {
|
||||
color: #3F8ED8;
|
||||
text-decoration: underline;
|
||||
}
|
||||
.postbody {
|
||||
margin-bottom: 10px;
|
||||
border-bottom: 1px solid #CCCCCC;
|
||||
}
|
||||
.postbody pre {
|
||||
font-size: 0.8em;
|
||||
}
|
||||
.footnotes {
|
||||
font-size: 0.9em;
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
.footnotes hr {
|
||||
color: #ffffff;
|
||||
background-color: #ffffff;
|
||||
border: #ffffff;
|
||||
}
|
||||
|
||||
|
||||
#twitter_div {
|
||||
margin-left: 0px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
#twitter_update_list {
|
||||
margin-left: 0px;
|
||||
}
|
||||
|
||||
#twitter_update_list li {
|
||||
list-style-image:none;
|
||||
list-style-position:outside;
|
||||
list-style-type:none;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
|
||||
.archive a {
|
||||
color: #437095;
|
||||
text-decoration: none;
|
||||
}
|
||||
.archive a:hover {
|
||||
color: #000;
|
||||
text-decoration: underline;
|
||||
}
|
||||
.archive li {
|
||||
list-style-image:none;
|
||||
list-style-position:outside;
|
||||
list-style-type:none;
|
||||
}
|
||||
|
||||
.archive h1 {
|
||||
font-size: 1.8em;
|
||||
}
|
||||
|
||||
.archive .archive-post {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
||||
.archive .archive-date {
|
||||
font-size: 1.0em;
|
||||
margin-left: 15px;
|
||||
}
|
||||
|
||||
.highlight pre {
|
||||
border-bottom: 1px solid #CCCCCC;
|
||||
border-top: 1px solid #CCCCCC;
|
||||
padding: 10px;
|
||||
background: #F8F8F8 none repeat scroll 0% 0%;
|
||||
margin-bottom: 10px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.output {
|
||||
border-bottom: 1px solid #CCCCCC;
|
||||
border-top: 1px solid #CCCCCC;
|
||||
padding: 10px;
|
||||
background: #F8F8F8 none repeat scroll 0% 0%;
|
||||
margin-bottom: 10px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
#ft {
|
||||
color: #aaa;
|
||||
border-top: 1px solid #aaa;
|
||||
clear: both;
|
||||
margin: 0 0 2em 0;
|
||||
font-size: 0.8em;
|
||||
letter-spacing: 0.5px;
|
||||
}
|
||||
|
||||
|
||||
.imggrid td {
|
||||
border: 0px;
|
||||
padding: 1px;
|
||||
margin: 0px;
|
||||
line-height: 0%;
|
||||
}
|
||||
|
||||
.postimage img {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
|
||||
.spacertable {
|
||||
width: 100%;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
.spacertable td {
|
||||
border: 0px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
.layouttable {
|
||||
width: 100%;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
.layouttable td {
|
||||
border: 0px;
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
|
||||
|
||||
blockquote {
|
||||
background: url(start_quote.png) top left no-repeat;
|
||||
padding-left: 30px;
|
||||
padding-right: 30px;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
.subtitle {
|
||||
width: 60%;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.equation {
|
||||
margin-left: 30px;
|
||||
font-weight: bold;
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
||||
|
||||
.recent a {
|
||||
color: #437095;
|
||||
text-decoration: none;
|
||||
}
|
||||
.recent a:hover {
|
||||
color: #000;
|
||||
text-decoration: underline;
|
||||
}
|
||||
#yui-main .recent ul li {
|
||||
list-style-image:none;
|
||||
list-style-position:outside;
|
||||
list-style-type:none;
|
||||
margin: 5px;
|
||||
}
|
||||
#yui-main .recent h1 {
|
||||
font-size: 1.4em;
|
||||
margin-top: 20px;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
.recent .recent-post {
|
||||
font-size: 1.0em;
|
||||
}
|
||||
.recent .recent-date {
|
||||
font-size: 0.8em;
|
||||
margin-left: 15px;
|
||||
}
|
||||
|
||||
|
||||
.links_block {
|
||||
margin-left: 35px;
|
||||
}
|
||||
|
||||
.links_block li {
|
||||
list-style-type:none;
|
||||
|
||||
}
|
||||
|
||||
.links_title {
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
.links_title a p {
|
||||
margin: 0px !important;
|
||||
}
|
||||
|
||||
.links_body {
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
margin-left: 20px;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.links_body p {
|
||||
margin: 5px !important;
|
||||
}
|
||||
|
||||
.terminal {
|
||||
color: #fff;
|
||||
background: #000;
|
||||
padding: 20px;
|
||||
|
||||
}
|
||||
|
||||
|
||||
.frontpage h2 {
|
||||
margin: 0.2em 0;
|
||||
}
|
||||
|
||||
.frontpage h3 {
|
||||
margin: 0.2em 0;
|
||||
}
|
||||
|
||||
.frontpage p {
|
||||
margin: 0.2em 0 !important;
|
||||
}
|
||||
|
||||
.postlist {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.postlist li {
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
.postlist a {
|
||||
color: #303030;
|
||||
border-bottom: 1px dotted #303030;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.postlist img {
|
||||
float: left;
|
||||
margin-right: 5px;
|
||||
margin-bottom: 5px;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.postlist a:hover {
|
||||
color: #3F8ED8;
|
||||
border-bottom: 1px dotted #3F8ED8;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.postlist td {
|
||||
border: 0px;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
#contact {
|
||||
margin-left: 0px;
|
||||
|
||||
}
|
||||
#contact li {
|
||||
list-style: none;
|
||||
margin: 5px 0 !important;
|
||||
}
|
||||
|
||||
.projtable {
|
||||
width: 100%;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
.projtable td {
|
||||
padding-left: 0px;
|
||||
vertical-align: top;
|
||||
border: 0px;
|
||||
padding-top: 0px;
|
||||
}
|
||||
.projtable th {
|
||||
padding-left: 0px;
|
||||
vertical-align: top;
|
||||
border: 0px;
|
||||
text-align: left;
|
||||
padding-top: 0px;
|
||||
}
|
||||
|
||||
.hidden {
|
||||
display: none;
|
||||
}
|
|
@ -0,0 +1,120 @@
|
|||
.highlight { background: #f8f8f8; }
|
||||
.highlight .c { color: #408080; font-style: italic } /* Comment */
|
||||
.highlight .err { border: 1px solid #FF0000 } /* Error */
|
||||
.highlight .k { color: #008000; font-weight: bold } /* Keyword */
|
||||
.highlight .o { color: #666666 } /* Operator */
|
||||
.highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */
|
||||
.highlight .cp { color: #BC7A00 } /* Comment.Preproc */
|
||||
.highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */
|
||||
.highlight .cs { color: #408080; font-style: italic } /* Comment.Special */
|
||||
.highlight .gd { color: #A00000 } /* Generic.Deleted */
|
||||
.highlight .ge { font-style: italic } /* Generic.Emph */
|
||||
.highlight .gr { color: #FF0000 } /* Generic.Error */
|
||||
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
|
||||
.highlight .gi { color: #00A000 } /* Generic.Inserted */
|
||||
.highlight .go { color: #808080 } /* Generic.Output */
|
||||
.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
|
||||
.highlight .gs { font-weight: bold } /* Generic.Strong */
|
||||
.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
|
||||
.highlight .gt { color: #0040D0 } /* Generic.Traceback */
|
||||
.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
|
||||
.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
|
||||
.highlight .kp { color: #008000 } /* Keyword.Pseudo */
|
||||
.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
|
||||
.highlight .kt { color: #B00040 } /* Keyword.Type */
|
||||
.highlight .m { color: #666666 } /* Literal.Number */
|
||||
.highlight .s { color: #BA2121 } /* Literal.String */
|
||||
.highlight .na { color: #7D9029 } /* Name.Attribute */
|
||||
.highlight .nb { color: #008000 } /* Name.Builtin */
|
||||
.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */
|
||||
.highlight .no { color: #880000 } /* Name.Constant */
|
||||
.highlight .nd { color: #AA22FF } /* Name.Decorator */
|
||||
.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
|
||||
.highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
|
||||
.highlight .nf { color: #0000FF } /* Name.Function */
|
||||
.highlight .nl { color: #A0A000 } /* Name.Label */
|
||||
.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
|
||||
.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
|
||||
.highlight .nv { color: #19177C } /* Name.Variable */
|
||||
.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
|
||||
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
|
||||
.highlight .mf { color: #666666 } /* Literal.Number.Float */
|
||||
.highlight .mh { color: #666666 } /* Literal.Number.Hex */
|
||||
.highlight .mi { color: #666666 } /* Literal.Number.Integer */
|
||||
.highlight .mo { color: #666666 } /* Literal.Number.Oct */
|
||||
.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
|
||||
.highlight .sc { color: #BA2121 } /* Literal.String.Char */
|
||||
.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
|
||||
.highlight .s2 { color: #BA2121 } /* Literal.String.Double */
|
||||
.highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
|
||||
.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
|
||||
.highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
|
||||
.highlight .sx { color: #008000 } /* Literal.String.Other */
|
||||
.highlight .sr { color: #BB6688 } /* Literal.String.Regex */
|
||||
.highlight .s1 { color: #BA2121 } /* Literal.String.Single */
|
||||
.highlight .ss { color: #19177C } /* Literal.String.Symbol */
|
||||
.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
|
||||
.highlight .vc { color: #19177C } /* Name.Variable.Class */
|
||||
.highlight .vg { color: #19177C } /* Name.Variable.Global */
|
||||
.highlight .vi { color: #19177C } /* Name.Variable.Instance */
|
||||
.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */
|
||||
.grokdoc { background: #f8f8f8; }
|
||||
.grokdoc .c { color: #408080; font-style: italic } /* Comment */
|
||||
.grokdoc .err { border: 1px solid #FF0000 } /* Error */
|
||||
.grokdoc .k { color: #008000; font-weight: bold } /* Keyword */
|
||||
.grokdoc .o { color: #666666 } /* Operator */
|
||||
.grokdoc .cm { color: #408080; font-style: italic } /* Comment.Multiline */
|
||||
.grokdoc .cp { color: #BC7A00 } /* Comment.Preproc */
|
||||
.grokdoc .c1 { color: #408080; font-style: italic } /* Comment.Single */
|
||||
.grokdoc .cs { color: #408080; font-style: italic } /* Comment.Special */
|
||||
.grokdoc .gd { color: #A00000 } /* Generic.Deleted */
|
||||
.grokdoc .ge { font-style: italic } /* Generic.Emph */
|
||||
.grokdoc .gr { color: #FF0000 } /* Generic.Error */
|
||||
.grokdoc .gh { color: #000080; font-weight: bold } /* Generic.Heading */
|
||||
.grokdoc .gi { color: #00A000 } /* Generic.Inserted */
|
||||
.grokdoc .go { color: #808080 } /* Generic.Output */
|
||||
.grokdoc .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
|
||||
.grokdoc .gs { font-weight: bold } /* Generic.Strong */
|
||||
.grokdoc .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
|
||||
.grokdoc .gt { color: #0040D0 } /* Generic.Traceback */
|
||||
.grokdoc .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
|
||||
.grokdoc .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
|
||||
.grokdoc .kp { color: #008000 } /* Keyword.Pseudo */
|
||||
.grokdoc .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
|
||||
.grokdoc .kt { color: #B00040 } /* Keyword.Type */
|
||||
.grokdoc .m { color: #666666 } /* Literal.Number */
|
||||
.grokdoc .s { color: #BA2121 } /* Literal.String */
|
||||
.grokdoc .na { color: #7D9029 } /* Name.Attribute */
|
||||
.grokdoc .nb { color: #008000 } /* Name.Builtin */
|
||||
.grokdoc .nc { color: #0000FF; font-weight: bold } /* Name.Class */
|
||||
.grokdoc .no { color: #880000 } /* Name.Constant */
|
||||
.grokdoc .nd { color: #AA22FF } /* Name.Decorator */
|
||||
.grokdoc .ni { color: #999999; font-weight: bold } /* Name.Entity */
|
||||
.grokdoc .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
|
||||
.grokdoc .nf { color: #0000FF } /* Name.Function */
|
||||
.grokdoc .nl { color: #A0A000 } /* Name.Label */
|
||||
.grokdoc .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
|
||||
.grokdoc .nt { color: #008000; font-weight: bold } /* Name.Tag */
|
||||
.grokdoc .nv { color: #19177C } /* Name.Variable */
|
||||
.grokdoc .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
|
||||
.grokdoc .w { color: #bbbbbb } /* Text.Whitespace */
|
||||
.grokdoc .mf { color: #666666 } /* Literal.Number.Float */
|
||||
.grokdoc .mh { color: #666666 } /* Literal.Number.Hex */
|
||||
.grokdoc .mi { color: #666666 } /* Literal.Number.Integer */
|
||||
.grokdoc .mo { color: #666666 } /* Literal.Number.Oct */
|
||||
.grokdoc .sb { color: #BA2121 } /* Literal.String.Backtick */
|
||||
.grokdoc .sc { color: #BA2121 } /* Literal.String.Char */
|
||||
.grokdoc .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
|
||||
.grokdoc .s2 { color: #BA2121 } /* Literal.String.Double */
|
||||
.grokdoc .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
|
||||
.grokdoc .sh { color: #BA2121 } /* Literal.String.Heredoc */
|
||||
.grokdoc .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
|
||||
.grokdoc .sx { color: #008000 } /* Literal.String.Other */
|
||||
.grokdoc .sr { color: #BB6688 } /* Literal.String.Regex */
|
||||
.grokdoc .s1 { color: #BA2121 } /* Literal.String.Single */
|
||||
.grokdoc .ss { color: #19177C } /* Literal.String.Symbol */
|
||||
.grokdoc .bp { color: #008000 } /* Name.Builtin.Pseudo */
|
||||
.grokdoc .vc { color: #19177C } /* Name.Variable.Class */
|
||||
.grokdoc .vg { color: #19177C } /* Name.Variable.Global */
|
||||
.grokdoc .vi { color: #19177C } /* Name.Variable.Instance */
|
||||
.grokdoc .il { color: #666666 } /* Literal.Number.Integer.Long */
|
|
@ -0,0 +1,66 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>@!pageTitle!@</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
$!header!$
|
||||
<style type="text/css">
|
||||
body {
|
||||
padding-top: 60px;
|
||||
padding-bottom: 40px;
|
||||
}
|
||||
</style>
|
||||
<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<![endif]-->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="navbar navbar-fixed-top">
|
||||
<div class="navbar-inner">
|
||||
<div class="container">
|
||||
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</a>
|
||||
<a class="brand" href="@!top!@/index.html">pathod</a>
|
||||
<div class="nav-collapse">
|
||||
<ul class="nav">
|
||||
<li $!'class=active' if section=="index" else ""!$><a href="@!top!@/index.html">overview</a></li>
|
||||
<li
|
||||
$!'class="dropdown active"' if section=="docs" else 'class="dropdown"'!$>
|
||||
<a class="dropdown-toggle" data-toggle="dropdown" href="@!top!@/docs.html">
|
||||
docs
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="@!top!@/index.html">pathod</a></li>
|
||||
<li><a href="@!top!@/index.html">pathoc</a></li>
|
||||
<li><a href="@!top!@/index.html">libpathod.test</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="span12">
|
||||
$!body!$
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<footer>
|
||||
<p>© Aldo Cortesi 2012</p>
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,5 @@
|
|||
|
||||
Test.
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
|
||||
<div class="hero-unit">
|
||||
<h1>Tools for testing and torturing HTTP clients, servers and proxies.</h1>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="span4">
|
||||
<div class="well">
|
||||
<h1> pathod </h1>
|
||||
|
||||
A pathological web daemon.
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="span4">
|
||||
<div class="well">
|
||||
<h1> pathoc </h1>
|
||||
|
||||
A perverse HTTP client.
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="span4">
|
||||
<div class="well">
|
||||
<h1> libpathod.test </h1>
|
||||
|
||||
Use pathod and pathoc in your unit tests.
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,18 @@
|
|||
from countershape import widgets, layout, html, blog, markup, sitemap
|
||||
from countershape.doc import *
|
||||
|
||||
ns.foot = "Copyright 2012 Aldo Cortesi"
|
||||
this.markup = markup.Markdown(extras=dict(footnotes=True))
|
||||
this.layout = layout.FileLayout("_layout_full.html")
|
||||
this.titlePrefix = ""
|
||||
this.site_url = "http://corte.si"
|
||||
pages = [
|
||||
Page("index.html", "overview", namespace=dict(section="index")),
|
||||
Page("docs.html", "docs", namespace=dict(section="docs")),
|
||||
sitemap.Sitemap("sitemap.xml")
|
||||
]
|
||||
ns.sidebar = widgets.SiblingPageIndex(
|
||||
pages[0],
|
||||
depth=1,
|
||||
divclass="sidebarmenu"
|
||||
)
|
Binary file not shown.
After Width: | Height: | Size: 376 B |
Loading…
Reference in New Issue