html_url,issue_url,id,node_id,user,created_at,updated_at,author_association,body,reactions,issue,performed_via_github_app
https://github.com/simonw/datasette/pull/1931#issuecomment-1341825314,https://api.github.com/repos/simonw/datasette/issues/1931,1341825314,IC_kwDOBm6k_c5P-qEi,9599,2022-12-08T01:03:18Z,2022-12-08T01:03:18Z,OWNER,"I broke this test:
```
ds_write =
@pytest.mark.asyncio
async def test_insert_row(ds_write):
token = write_token(ds_write)
response = await ds_write.client.post(
""/data/docs/-/insert"",
json={""row"": {""title"": ""Test"", ""score"": 1.2, ""age"": 5}},
headers={
""Authorization"": ""***"".format(token),
""Content-Type"": ""application/json"",
},
)
expected_row = {""id"": 1, ""title"": ""Test"", ""score"": 1.2, ""age"": 5}
> assert response.status_code == 201
E assert 500 == 201
E + where 500 = .status_code
/home/runner/work/datasette/datasette/tests/test_api_write.py:43: AssertionError
----------------------------- Captured stderr call -----------------------------
Traceback (most recent call last):
File ""/home/runner/work/datasette/datasette/datasette/app.py"", line 1447, in route_path
response = await view(request, send)
File ""/home/runner/work/datasette/datasette/datasette/views/base.py"", line 151, in view
return await self.dispatch_request(request)
File ""/home/runner/work/datasette/datasette/datasette/views/base.py"", line 105, in dispatch_request
response = await handler(request)
File ""/home/runner/work/datasette/datasette/datasette/views/table.py"", line 1228, in post
row_pk_values_for_later = [tuple(row[pk] for pk in pks) for row in rows]
File ""/home/runner/work/datasette/datasette/datasette/views/table.py"", line 1228, in
row_pk_values_for_later = [tuple(row[pk] for pk in pks) for row in rows]
File ""/home/runner/work/datasette/datasette/datasette/views/table.py"", line 1228, in
row_pk_values_for_later = [tuple(row[pk] for pk in pks) for row in rows]
KeyError: 'id'
```","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",1473814539,
https://github.com/simonw/datasette/pull/1931#issuecomment-1341821213,https://api.github.com/repos/simonw/datasette/issues/1931,1341821213,IC_kwDOBm6k_c5P-pEd,9599,2022-12-08T00:58:21Z,2022-12-08T00:58:21Z,OWNER,"In the interests of shipping, I'm going to punt the API explorer to a later issue.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",1473814539,
https://github.com/simonw/datasette/pull/1931#issuecomment-1339968514,https://api.github.com/repos/simonw/datasette/issues/1931,1339968514,IC_kwDOBm6k_c5P3kwC,9599,2022-12-06T20:28:47Z,2022-12-06T20:28:47Z,OWNER,"Should the `""return"": true` mode reflect the order in which the rows were provided when the API was called?
I think it should. Since this is small enough to happily fit in Python memory (thanks to the `max_insert_rows` setting) I can load the fresh data from the database and then sort it in Python space before returning it.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",1473814539,
https://github.com/simonw/datasette/pull/1931#issuecomment-1339911152,https://api.github.com/repos/simonw/datasette/issues/1931,1339911152,IC_kwDOBm6k_c5P3Wvw,9599,2022-12-06T19:38:12Z,2022-12-06T19:38:12Z,OWNER,Documentation: https://datasette--1931.org.readthedocs.build/en/1931/json_api.html#upserting-rows,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",1473814539,
https://github.com/simonw/datasette/pull/1931#issuecomment-1339784569,https://api.github.com/repos/simonw/datasette/issues/1931,1339784569,IC_kwDOBm6k_c5P2315,9599,2022-12-06T18:16:15Z,2022-12-06T18:17:56Z,OWNER,"Just noticed the insert API returns `{}` when it should return `{""ok"": true}` - will fix that here too.
UPDATE: no it did that already, it was just the documentation that was wrong.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",1473814539,
https://github.com/simonw/datasette/pull/1931#issuecomment-1339768422,https://api.github.com/repos/simonw/datasette/issues/1931,1339768422,IC_kwDOBm6k_c5P2z5m,9599,2022-12-06T18:04:59Z,2022-12-06T18:04:59Z,OWNER,"I realized this API should require both the `insert-row` AND the `update-row` permissions, since calls to it could do either one.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",1473814539,