Aldo Cortesi
3f50930dc0
Use .freeze to implement the -e explain flags for pathod and pathoc.
...
This now prints (in pathoc) or logs (in pathod) a frozen specification that
includes an expanded record of all generated values and locations.
2012-10-31 11:34:58 +13:00
Aldo Cortesi
8c6cc8140c
Fix generated values in request path specification.
2012-10-31 09:48:55 +13:00
Aldo Cortesi
0c9cfb3f38
Add a .freeze() method to all components.
...
This expands and freezes all randomly generated values. The message returned
can be queried for a precise spec to reproduce the message.
2012-10-31 09:32:21 +13:00
Aldo Cortesi
f8df0a1e75
Add a .values method to messages, simplify a lot of stuff as a consequence.
2012-10-30 16:08:36 +13:00
Aldo Cortesi
a09584b9e6
Make Message classes more self-contained.
2012-10-30 15:22:53 +13:00
Aldo Cortesi
b2deb470de
Extract .serve() method from message classes.
2012-10-30 14:46:18 +13:00
Aldo Cortesi
677f0e0580
Change preview_safe to return a safe copy of the current message.
2012-10-30 13:36:32 +13:00
Aldo Cortesi
a1f782b543
Simplify Request/Response class hierarchy.
2012-10-30 13:28:22 +13:00
Aldo Cortesi
3e0cd6442a
Add .spec methods for Request and Response objects.
2012-10-29 17:33:10 +13:00
Aldo Cortesi
747eafd107
Add a .spec method to the token ABC, and to all tokens.
2012-10-29 16:31:35 +13:00
Aldo Cortesi
8741600ce7
Refactoring: canonical storage of a message is now the sequence of tokens that defines it.
...
We use a set of accessor properties to ease access to tokens. We can now ditch
the .accept() methods.
2012-10-29 15:16:44 +13:00
Aldo Cortesi
882969086c
Cleaup, some more ABCs.
2012-10-29 10:19:58 +13:00
Aldo Cortesi
61f8992fbf
Change response spec format to code[:features]
...
Reason message is now specified as just another feature with the "m" mnemonic.
2012-10-28 22:18:06 +13:00
Aldo Cortesi
07560ffe30
Cleaup, ABC for Value classes.
2012-10-28 22:00:19 +13:00
Aldo Cortesi
35f37626a9
Clean up .accept() signature.
2012-10-28 17:39:58 +13:00
Aldo Cortesi
7d74f75f6d
Split Code and Reason into separate _Component objects.
2012-10-28 17:07:16 +13:00
Aldo Cortesi
e9af434c2b
.body and .method to lazy generator instantiation.
...
Also introduce a _Component ABC.
2012-10-28 14:15:29 +13:00
Aldo Cortesi
9d42a06c92
Move message body to new lazy-generator scheme.
2012-10-28 12:56:08 +13:00
Aldo Cortesi
f54ed69a35
Adjust serve() API.
2012-10-28 09:06:55 +13:00
Aldo Cortesi
ac5aacce44
Remove check argument to serve() methods.
...
Refactoring means we can now do this without a callback.
Also introduce the maximum_length method that estimates the max possible
message length.
2012-10-27 17:40:22 +13:00
Aldo Cortesi
06864e5a1b
Major refactoring towars separate representation of expressions and request/response service.
2012-10-27 14:00:50 +13:00
Aldo Cortesi
6174e46023
Unit test suite love: 100% coverage
...
Also start figuring out how to sanitize binary data in the JSON API.
2012-10-25 10:59:18 +13:00
Aldo Cortesi
173b5c596e
Start moving policy checks to service-time, rather than parse-time.
2012-10-25 09:45:55 +13:00
Aldo Cortesi
c684f7417d
Extend Action and Value classes
...
- Values now know how to print their own specs
- Actions now know how to print their own specs
- Actions have a resolve_offset method that resolves relative and random offsets.
2012-10-24 11:32:53 +13:00
Aldo Cortesi
e83392bfc8
Start making Action objects more sophisticated.
2012-10-05 11:23:30 +13:00
Aldo Cortesi
495daf2b64
Remove actions log and explain, preparing for a more sophisticated take on this.
2012-10-05 11:14:17 +13:00
Aldo Cortesi
f5d5cc4988
rparse.py -> language.py
2012-10-05 10:30:32 +13:00
Aldo Cortesi
d3e1f8a014
Stub out documentation changes
2012-10-04 12:17:35 +13:00
Aldo Cortesi
41f1c66772
Add -q and -r flags to pathod, logging request and respnose bytes.
...
- These flags also mean that a bytes log is included in the internal log
buffer.
- There's an -x flag to turn on hex dump output in the text logs (does
not affect the log buffer).
2012-10-01 12:48:26 +13:00
Aldo Cortesi
915bcfbd30
Add timeout argument to Pathod, and matching -t command-line option.
2012-10-01 12:01:02 +13:00
Aldo Cortesi
8bb81be2b0
Add pathoc -T to ignore timeouts.
...
Also move -c to -C for consistency.
2012-09-28 11:38:49 +12:00
Aldo Cortesi
65108ed429
Add pathoc -o, oneshot mode, exits after the first non-ignored response.
2012-09-27 10:56:06 +12:00
Aldo Cortesi
7209a75201
Add pathoc -c to specify a list of return codes to ignore.
2012-09-27 09:44:25 +12:00
Aldo Cortesi
10a19fc4da
Refactor print_requests -> print_request
...
- Change to handle one request at a time
- Shift error handling around
2012-09-26 14:25:39 +12:00
Aldo Cortesi
424d15c28b
Expand the docs to explain pathoc multiple requests.
2012-09-26 11:21:40 +12:00
Aldo Cortesi
b67d99638a
Response printing
...
Options to output full response, as sniffed from the socket.
2012-09-26 11:07:22 +12:00
Aldo Cortesi
a69d602087
Hex and verbatim output of requests.
...
This works by sniffing traffic through the socket, so always gives us the exact
traffic sent upstream.
2012-09-26 10:38:47 +12:00
Aldo Cortesi
0a5d4fbbbb
Stub out new output argument structure.
2012-09-26 10:12:30 +12:00
Aldo Cortesi
0dd250d4f8
Fix utils.get_header case handling.
2012-09-24 10:08:18 +12:00
Aldo Cortesi
9db2bcabad
Auto-generate download links.
2012-08-25 11:30:55 +12:00
Aldo Cortesi
d36cf63112
Bump for minor release.
2012-08-25 11:26:18 +12:00
Aldo Cortesi
2f7188164c
Download page, MANIFEST.in
2012-08-23 12:54:58 +12:00
Aldo Cortesi
b78a3817cd
Adjust examples and docs.
2012-08-23 12:37:02 +12:00
Aldo Cortesi
d758409b76
Make sure date stamps are added to all logs.
2012-08-23 12:00:16 +12:00
Aldo Cortesi
95968ad558
Don't allow negative integer offsets for now.
2012-08-17 10:08:02 +12:00
Aldo Cortesi
13cb0cab90
Tweak front page: correct public pathod URL, more illustrative examples.
2012-08-16 22:29:14 +12:00
Aldo Cortesi
51d10f53c1
Add Cache-Control directives to static pages.
2012-08-11 17:06:51 +12:00
Aldo Cortesi
8d26db4931
Docs.
2012-08-07 23:19:48 +12:00
Aldo Cortesi
158106d346
Doc tweaks.
2012-07-30 21:12:42 +12:00
Aldo Cortesi
fde65270af
Testing examples and docs.
2012-07-30 20:58:59 +12:00
Aldo Cortesi
e52a37ffa9
Cleanup of libpathod.test, test example for front page.
2012-07-30 17:29:36 +12:00
Aldo Cortesi
e26aac1d3c
100% test coverage.
2012-07-30 13:52:40 +12:00
Aldo Cortesi
43314c77c8
Handle invalid headers better.
2012-07-30 12:53:41 +12:00
Aldo Cortesi
5b08703fa8
Handle disconnects on flush.
2012-07-30 12:02:42 +12:00
Aldo Cortesi
b1ac4245c8
docs: pathod
2012-07-30 00:14:34 +12:00
Aldo Cortesi
bc1cfd9f75
Docs.
2012-07-29 22:26:31 +12:00
Aldo Cortesi
d7db6757b2
Listen on localhost by default.
2012-07-29 17:29:38 +12:00
Aldo Cortesi
c21639deab
Tweak about page to be less po-faced.
2012-07-29 16:46:24 +12:00
Aldo Cortesi
08b95f6aa1
Refactor preview display pages.
2012-07-29 16:33:45 +12:00
Aldo Cortesi
483e8182ff
Add new styling (thanks to bootswatch.com)
2012-07-29 13:55:59 +12:00
Aldo Cortesi
d8c53cbc57
Add an option to specify a log file to pathod.
2012-07-27 14:03:15 +12:00
Aldo Cortesi
3e158211a8
Add a --nohang flag that turns off pauses in response generation.
2012-07-26 20:01:51 +12:00
Aldo Cortesi
b879890412
Add the public pathod server.
2012-07-25 13:07:27 +12:00
Aldo Cortesi
eb43291b3c
Note that pauses are skipped during previews.
2012-07-25 12:49:22 +12:00
Aldo Cortesi
24f69419df
Unit test about page.
2012-07-25 12:39:51 +12:00
Aldo Cortesi
adac9a35c3
Use tabs for request/response definitions on language docs page.
2012-07-25 12:36:53 +12:00
Aldo Cortesi
87306164a6
Expand examples for responses, remove dupes from pathod doc.
2012-07-25 12:18:36 +12:00
Aldo Cortesi
0b916ebbb1
Add a basic about page.
2012-07-25 11:55:44 +12:00
Aldo Cortesi
410144c579
Add examples for each preview form.
2012-07-25 11:36:19 +12:00
Aldo Cortesi
e7e6a60246
Nicer error for empty preview spec submission.
2012-07-25 10:55:00 +12:00
Aldo Cortesi
59f408dcf4
Refine parse error message a bit.
2012-07-25 10:44:21 +12:00
Aldo Cortesi
8cfbc2f80e
Refactor test.py, add unit tests for app.py corner case.
2012-07-25 10:34:57 +12:00
Aldo Cortesi
e1df7f47a6
Sizing and placeholder for preview forms.
2012-07-25 10:24:09 +12:00
Aldo Cortesi
7dab85e8b1
Handle file access denied errors in previews.
2012-07-25 00:18:23 +12:00
Aldo Cortesi
64ef0a4561
Swap the offset, seconds arguments for the pause operator.
...
This makes it uniform with the other operators.s
2012-07-24 23:57:18 +12:00
Aldo Cortesi
cb09488dc8
Make actions at end of message work.
2012-07-24 23:49:58 +12:00
Aldo Cortesi
8f0ebb405d
Hide "go" button if crafting is off. Use configured crafting anchor point.
2012-07-24 23:38:41 +12:00
Aldo Cortesi
ab59d6dccf
Add preview for pathoc requests to web app.
2012-07-24 23:13:04 +12:00
Aldo Cortesi
6c565e778f
Make previews safer by stripping pauses.
2012-07-24 22:38:48 +12:00
Aldo Cortesi
e9de11f0e3
Don't add stuff to our internal log buffer if noapi is on.
2012-07-24 22:30:15 +12:00
Aldo Cortesi
11896d2118
Turn off /log when noapi is set.
2012-07-24 22:27:04 +12:00
Aldo Cortesi
eb1f2c3fc4
Add option to specify craft anchor point.
2012-07-24 21:51:43 +12:00
Aldo Cortesi
97fe026c32
Add basic docs for request spec language.
2012-07-24 21:45:05 +12:00
Aldo Cortesi
94b491bb27
Add a Host header to pathoc requests by default.
2012-07-24 21:38:28 +12:00
Aldo Cortesi
9502eeadaa
Document raw flag.
2012-07-24 12:52:53 +12:00
Aldo Cortesi
a9e60fa3e6
Add a Date header to server responses, unless raw is set.
2012-07-24 12:46:14 +12:00
Aldo Cortesi
dbed251fb9
Add a raw modifier to requests and responses, which turn off automatic additions.
...
For now, this just turns off adding a Content-Length header when a body is specified.
2012-07-24 12:18:14 +12:00
Aldo Cortesi
2dd2137d44
Better handling of binary data output by pathoc.
2012-07-24 00:00:55 +12:00
Aldo Cortesi
a950a4d7a3
Add pathod --noapi to turn off the service API.
2012-07-23 23:31:26 +12:00
Aldo Cortesi
190392ea13
Add a --nocraft option to pathod that turns off crafting.
2012-07-23 21:39:31 +12:00
Aldo Cortesi
622a2b5607
Add a --noweb option to turn web iface off, refactor unit tests.
2012-07-23 19:55:33 +12:00
Aldo Cortesi
eba485f5eb
100% unit test coverage
2012-07-23 19:25:57 +12:00
Aldo Cortesi
763e1ff786
pathod.py unit tests++
2012-07-23 17:53:17 +12:00
Aldo Cortesi
1d1098687c
100% test coverage for pathoc.py
2012-07-23 17:42:44 +12:00
Aldo Cortesi
c1f75dd5a3
Use local scrolling with a JQuery module, because anchor jumps are braindead.
2012-07-23 17:30:50 +12:00
Aldo Cortesi
091d90011b
Unify offset specifications, and document them.
2012-07-23 17:19:25 +12:00
Aldo Cortesi
2880fee4e3
Escape unprintable content in preview.
2012-07-23 16:39:25 +12:00
Aldo Cortesi
773ada882d
Unit tests for most of app.py, return 404 for unknown log entry.
2012-07-23 16:18:47 +12:00
Aldo Cortesi
3027aae142
Use configured size limit to keep previews in check.
2012-07-23 15:38:06 +12:00
Aldo Cortesi
5283bb2507
Refactor rparse.InternalResponse -> rparse.PathodErrorResponse
2012-07-23 15:11:40 +12:00
Aldo Cortesi
1c45f5b05c
Use policy hook to apply a size limit in pathod, add corresponding cmdline arg.
2012-07-23 15:03:56 +12:00
Aldo Cortesi
c7b5faf7db
Add hooks for policy checks of served data.
2012-07-23 14:37:00 +12:00
Aldo Cortesi
204a556aa7
Add function for effective length calculation when actions are present.
2012-07-23 10:47:33 +12:00
Aldo Cortesi
32bd16aa31
Make file generators display nicely in pathoc actions dump.
2012-07-22 23:51:44 +12:00
Aldo Cortesi
96db3557ce
Constrain file access to configured directory in pathod.
2012-07-22 23:46:56 +12:00
Aldo Cortesi
1b03fd6780
Allow execution of specs from file, using +./path
2012-07-22 23:37:46 +12:00
Aldo Cortesi
33208b8720
Doc reorg.
2012-07-22 22:24:16 +12:00
Aldo Cortesi
817e550aa1
Multiline specifications for pathod and pathoc.
2012-07-22 15:26:05 +12:00
Aldo Cortesi
1e93e42883
Escape special characters in first line error log.
2012-07-22 12:40:27 +12:00
Aldo Cortesi
8d8ede7e26
Handle invalid content length headers.
2012-07-22 12:30:10 +12:00
Aldo Cortesi
7a49cdfef3
More robust response handling.
2012-07-21 20:50:41 +12:00
Aldo Cortesi
86fe199988
pathoc: add a flag to dump request information.
2012-07-21 20:20:37 +12:00
Aldo Cortesi
059a232903
Add support for client timeout to pathoc.
2012-07-21 16:19:44 +12:00
Aldo Cortesi
3e6f440b8d
Document Python-style string escaping.
2012-07-21 14:17:41 +12:00
Aldo Cortesi
8ec44c6277
Allow Python string escape sequences in value literals.
2012-07-21 14:12:45 +12:00
Aldo Cortesi
8e0c01ae39
Fine-tuning for injection: docs, bugfixes.
2012-07-20 23:47:34 +12:00
Aldo Cortesi
d7841898e3
Add an injection operator.
2012-07-20 23:36:39 +12:00
Aldo Cortesi
2bdbbaa8af
Convert documentation to HTML, fix styling.
2012-07-20 23:19:58 +12:00
Aldo Cortesi
21ef35fd28
Much simpler rewrite of inner data sending loop.
...
We don't have to do the asynchronous code contortion anymore.
2012-07-20 20:14:35 +12:00
Aldo Cortesi
3d9e8b2dbf
We shouldn't ever get a socket error emanating from netlib.
2012-07-20 15:21:36 +12:00
Aldo Cortesi
03f4dcc02b
Extend test suite to cover SSL. Log SSL connection errors.
2012-07-20 13:21:33 +12:00
Aldo Cortesi
76f0c3ea78
Handle invalid first line errors, add an error log buffer type.
2012-07-20 11:40:37 +12:00
Aldo Cortesi
1bb93176da
Handle NetLibDisconnect error.
2012-07-09 11:09:37 +12:00
Aldo Cortesi
2cb55ee0f5
Factor out request printing in to a method, and test it.
2012-06-30 10:51:13 +12:00
Aldo Cortesi
654a84174a
Move docs into pathod server.
2012-06-29 11:53:59 +12:00
Aldo Cortesi
1b42f5ab1f
Allow naked literals for path specification.
2012-06-29 10:42:15 +12:00
Aldo Cortesi
9588da4ab4
Catch errors that may happen on interpreter shutdown.
2012-06-27 16:15:22 +12:00
Aldo Cortesi
8f148b6b14
Split pathod and pathoc daemon test suites out.
2012-06-26 17:28:07 +12:00
Aldo Cortesi
a68b4498b8
Allow naked value literal for pathoc path specifications.
2012-06-26 15:36:59 +12:00
Aldo Cortesi
65aef81997
parse -> parse_response in web app
2012-06-26 15:09:05 +12:00
Aldo Cortesi
33be5a72bf
Fixed the WSGI server hang in netlib, remove fudge.
2012-06-26 14:49:40 +12:00
Aldo Cortesi
15aab74ddb
Catch and log SSL connection errors. Improve log format.
2012-06-26 11:03:35 +12:00
Aldo Cortesi
f32258e8f7
Port pathoc to new netlib API. Add SNI.
2012-06-26 10:15:11 +12:00
Aldo Cortesi
8352c0278f
Handle client close more gracefully.
2012-06-25 11:34:29 +12:00
Aldo Cortesi
3d8610b6bc
Move server to new explicit netlib API.
2012-06-25 11:22:44 +12:00
Aldo Cortesi
15c48cfc5e
Simple HTTP connection keep-alive for pathod.
2012-06-24 23:11:25 +12:00
Aldo Cortesi
a747043cc8
Use http.read_response to read server response.
...
Also add a few different output formats, and a verbosity flag.
2012-06-24 22:59:20 +12:00
Aldo Cortesi
ddda57179a
read_headers now returns an ODictCaseless object.
2012-06-24 21:49:43 +12:00
Aldo Cortesi
65487ead6d
Logging truss for pathod.
2012-06-24 21:40:31 +12:00
Aldo Cortesi
90c6fb394d
Sketch out pathoc commandline interaction.
2012-06-24 21:10:10 +12:00
Aldo Cortesi
8bec99f858
Request service rendering.
2012-06-24 19:12:52 +12:00
Aldo Cortesi
2ac84be7cb
Add Path specification to request parser.
2012-06-24 18:38:22 +12:00
Aldo Cortesi
f8622ea914
Simple request spec parsing.
2012-06-24 17:47:55 +12:00
Aldo Cortesi
75f06d56cd
Request method parsing.
2012-06-24 17:23:37 +12:00
Aldo Cortesi
d4ad3f0b2c
Refactor to extract ready_actions and write_values.
2012-06-24 17:01:04 +12:00
Aldo Cortesi
4fc64ac04f
Enable anchors on command line.
2012-06-24 16:38:32 +12:00
Aldo Cortesi
e6aa9ff675
Re-enable anchors.
2012-06-24 16:20:50 +12:00
Aldo Cortesi
877b5a2d11
Add staticdir to test.Test.
2012-06-24 15:12:31 +12:00
Aldo Cortesi
2e558b7e9d
Fix disconnect, improve coverage, enable file value specifier.
2012-06-24 15:07:45 +12:00
Aldo Cortesi
b71e2f6f2b
More doc refinement.
2012-06-24 11:14:54 +12:00