ignore/replace to create requires pk, refs #1927

pull/1944/head
Simon Willison 2022-12-07 17:18:40 -08:00
rodzic 272982e8a6
commit 6b27537988
2 zmienionych plików z 32 dodań i 0 usunięć

Wyświetl plik

@ -605,6 +605,11 @@ class TableCreateView(BaseView):
if not data.get("row") and not data.get("rows"):
return _error(["ignore and replace require row or rows"])
# ignore and replace require pk or pks
if "ignore" in data or "replace" in data:
if not data.get("pk") and not data.get("pks"):
return _error(["ignore and replace require pk or pks"])
ignore = data.get("ignore")
replace = data.get("replace")

Wyświetl plik

@ -1083,6 +1083,31 @@ async def test_drop_table(ds_write, scenario):
"errors": ["ignore and replace require row or rows"],
},
),
# ignore and replace require pk or pks
(
{
"table": "bad",
"row": {"id": 1},
"ignore": True,
},
400,
{
"ok": False,
"errors": ["ignore and replace require pk or pks"],
},
),
(
{
"table": "bad",
"row": {"id": 1},
"replace": True,
},
400,
{
"ok": False,
"errors": ["ignore and replace require pk or pks"],
},
),
),
)
async def test_create_table(ds_write, input, expected_status, expected_response):
@ -1115,6 +1140,7 @@ async def test_create_table(ds_write, input, expected_status, expected_response)
{"id": 1, "name": "Row 1 new"},
{"id": 3, "name": "Row 3 new"},
],
"pk": "id",
"ignore": True,
},
[
@ -1130,6 +1156,7 @@ async def test_create_table(ds_write, input, expected_status, expected_response)
{"id": 1, "name": "Row 1 new"},
{"id": 3, "name": "Row 3 new"},
],
"pk": "id",
"replace": True,
},
[