Simon Willison
eba15fb5a8
Renamed Request.from_path_with_query_string() to Request.fake()
2019-06-23 16:49:57 -07:00
Simon Willison
5e12239402
Replaced sanic.request.Request
2019-06-23 16:42:49 -07:00
Simon Willison
79950c9643
Implemented HEAD requests, removed Sanic InvalidUsage
2019-06-23 15:06:43 -07:00
Simon Willison
b1c6db4b8f
Re-implemented tracing, refs #272
2019-06-23 12:55:16 -07:00
Simon Willison
1e8419bde4
Use correct content-type header, refs #272
2019-06-23 12:52:35 -07:00
Simon Willison
4b6b409d85
Test harness simulates raw_path/path properly
...
This causes tests to fail.
2019-06-23 08:59:10 -07:00
Simon Willison
b97cd53a48
Fix for Python 3.5 - refs #272
2019-06-23 08:03:42 -07:00
Simon Willison
2b5a644dd7
TestClient obeys allow_redirects again, refs #272
2019-06-23 07:10:42 -07:00
Simon Willison
b7a00dbde3
Include "asgi": "3.0" in /-/versions, refs #272
...
Mainly so you can tell if a Datasette instance is running
on ASGI or not.
2019-06-23 07:01:38 -07:00
Simon Willison
ff9efa668e
Implemente AsgiStream, CSV tests all now pass #272
2019-06-23 06:50:02 -07:00
Simon Willison
eb06e59332
static_mounts mechanism works again, refs #272
2019-06-22 22:42:23 -07:00
Simon Willison
8a1a15d725
Use aiofiles for static, refs #272
2019-06-22 22:07:41 -07:00
Simon Willison
d8dcc34e36
All API tests now pass, refs #272
...
CSV tests still all fail.
Also I marked test_trace() as skip because I have not yet re-implemented trace.
2019-06-22 20:21:23 -07:00
Simon Willison
55fc993667
Implemented custom 404/500, more tests pass #272
2019-06-22 18:57:10 -07:00
Simon Willison
b53a75c460
Test harness now uses ASGI, some tests pass #272
2019-06-22 18:34:00 -07:00
Simon Willison
39d66f17c1
Revert "New encode/decode_path_component functions"
...
Refs #272
This reverts commit 9fdb47ca95 .
Now that ASGI supports raw_path we don't need our own encoding scheme!
2019-06-18 17:24:13 -07:00
Simon Willison
2a4b892d6c
Tidy up with Black
2019-05-27 19:28:47 -07:00
Simon Willison
9c58d048ec
Fix pagination when sorted by expanded foreign key
...
Closes #489
2019-05-27 19:23:18 -07:00
Simon Willison
de92c05134
Fixed duplicate function name
2019-05-27 18:49:57 -07:00
Simon Willison
839e55bf0a
Start of unit tests for Database class, refs #485
2019-05-27 18:42:30 -07:00
Simon Willison
182a3017c2
Sort keys to past tests in Python 3.5
2019-05-25 09:22:02 -07:00
Simon Willison
d923d84754
Facet by many-to-many, closes #365
2019-05-25 09:06:32 -07:00
Simon Willison
172da009d8
Added ?_through= table argument, closes #355
...
Also added much more interesting many-to-many fixtures - roadside attractions!
2019-05-22 22:45:12 -07:00
Simon Willison
967230c90e
Facet by date, closes #481
2019-05-20 23:09:22 -07:00
Simon Willison
2d14f21f85
Updated tests for date(...) lookup
2019-05-20 23:06:19 -07:00
Simon Willison
f4eefdf193
Do not allow downloads of mutable databases - closes #474
2019-05-19 13:41:09 -07:00
Simon Willison
7d8573d672
Rename "datasette publish now" to "datasette publish nowv1"
...
Also added an alias so "datasette publish now" continues to work.
Closes #472
2019-05-19 11:06:51 -07:00
Simon Willison
db9dbfb816
?_hash=1 no longer respected for mutable databases
...
Closes #471 , refs #419
2019-05-16 08:10:25 -07:00
Simon Willison
0dad111d24
New introspection endpoint: /-/databases - closes #470
...
Refs #419 and #465
2019-05-16 07:49:34 -07:00
Simon Willison
21b57cdf9a
serve --inspect-file=X now populates cached table counts
...
Closes #462
2019-05-16 07:30:32 -07:00
Simon Willison
909e66dfdb
Removed .inspect() and /-/inspect.json
...
Refs #462
/-/inspect.json may return in some shape in #465
2019-05-16 07:15:24 -07:00
Simon Willison
faf33515b2
Sometimes sort tables by number of relationships, closes #460
2019-05-15 20:23:33 -07:00
Simon Willison
689cf9c139
Index page only shows row counts for smaller databases
...
The index page now only shows row counts for immutable databases OR for
databases with less than 30 tables provided it could get a count for
each of those tables in less than 10ms.
Closes #467 , Refs #460
2019-05-15 20:02:33 -07:00
Simon Willison
79303163b2
Row count fix + sort index page databases alphabetically
...
Sorting alphabetically should fix a test failure in Python 3.5
Refs #460
2019-05-15 17:40:10 -07:00
Simon Willison
5d6b2c30f1
Include views on homepage, fix table counts
...
If we have less than 5 tables we now also show one or more views in the
summary on the homepage.
Also corrected the logic for the row counts - we now count hidden and
visible tables separately.
Closes #373 , Refs #460
2019-05-15 17:28:07 -07:00
Simon Willison
e04511410f
Don't show hidden tables on index page, closes #455
...
Refs #460 . Also bulked out HTML index page unit tests.
2019-05-14 08:46:57 -07:00
Simon Willison
24bf79d2f0
Run sanity checks, not .inspect(), on startup
...
Also fixes tests that did NOT like a call to run_until_complete in the Datasette() constructor.
2019-05-11 16:22:55 -07:00
Simon Willison
da0b3ce2b7
New run_sanity_checks mechanism, for SpatiLite
...
Moved VirtualSpatialIndex check into a new mechanism that should allow
us to add further sanity checks in the future.
To test this I've had to commit a binary sample SpatiaLite database to
the repository. I included a build script for creating that database.
Closes #466
2019-05-11 15:55:30 -07:00
Simon Willison
c692cd2911
Fix test ordering
2019-05-11 15:03:52 -07:00
Simon Willison
a187c81e0c
Black + fix broken test
2019-05-11 14:45:59 -07:00
Simon Willison
c0d1b4c322
"datasette inspect foo.db" now just calculates table counts
...
Refs #462
* inspect command now just outputs table counts
* test_inspect.py is now only tests for that CLI command
* Updated some relevant documentation
* Removed docs for /-/inspect since that is about to change
2019-05-11 14:36:57 -07:00
Simon Willison
ce09e5d2d3
Fixed tests relating to #459
2019-05-11 13:58:22 -07:00
Simon Willison
05cabaebd9
Pass --token to now alias, refs #459
2019-05-11 13:35:34 -07:00
Simon Willison
09ef305c68
Fixed "datasette publish now ... --alias=x"
...
The --alias argument can now be passed more than once.
Also updated our Travis configuration to use this.
Fixes #459
2019-05-11 13:20:36 -07:00
Simon Willison
a0d444837f
Finished implementation of ?_trace=1 debug tool
...
I redesigned the JSON output and added a handy "traceback" key showing
three relevant lines of the current traceback for each logged query.
Closes #435
2019-05-11 12:06:22 -07:00
Simon Willison
2db977d8f3
tests/fixtures.py can now write out plugins too
...
This command:
python tests/fixtures.py \
fixtures.db \
metadata.json \
fixtures-plugins/
Will now create the fixtures.db and metadata.json files, AND create
a folder called fixtures-plugins/ containing two test plugins.
You can then run it like this:
datasette fixtures.db \
-m metadata.json --plugins-dir=fixtures-plugins/
2019-05-09 09:44:21 -07:00
Simon Willison
9fdb47ca95
New encode/decode_path_component functions
...
ASGI cannot differentiate between / and %2F in a URL, so we need an
alternative scheme for encoding the names of tables that contain special
characters such as /
For background, see
https://github.com/django/asgiref/issues/51#issuecomment-450603464
Some examples:
"table/and/slashes" => "tableU+002FandU+002Fslashes"
"~table" => "U+007Etable"
"+bobcats!" => "U+002Bbobcats!"
"U+007Etable" => "UU+002B007Etable"
2019-05-09 09:44:21 -07:00
Simon Willison
ec2db345e9
Fixed crash on /:memory: page
2019-05-05 14:01:14 -04:00
Simon Willison
831515b834
Respect --cors for error pages, closes #453
2019-05-05 08:12:03 -04:00
Simon Willison
35d6ee2790
Apply black to everything, enforce via unit tests ( #449 )
...
I've run the black code formatting tool against everything:
black tests datasette setup.py
I also added a new unit test, in tests/test_black.py, which will fail if the code does not
conform to black's exacting standards.
This unit test only runs on Python 3.6 or higher, because black itself doesn't run on 3.5.
2019-05-03 22:15:14 -04:00