Handle pasted memo identifiers and explain invalid review input
Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a09cbb-87c6-7900-a145-4ce53ba9f1a6
This commit is contained in:
parent
2692fa6f13
commit
c70d63abf9
5 changed files with 46 additions and 5 deletions
|
|
@ -252,3 +252,27 @@ def test_renderer_release_cannot_silently_change_under_a_memo(review):
|
|||
controller.store.save_memo(memo.next_version(ui_release='informed-decision@0.1.0'))
|
||||
with pytest.raises(ReviewError,match='renderer_changed'):opened(review)
|
||||
assert controller.store.evidence()==[]
|
||||
|
||||
|
||||
@pytest.mark.parametrize("padding", ["", " ", "\t\r\n", "\u00a0"])
|
||||
def test_pasted_memo_id_opens_current_version(review, padding):
|
||||
controller, session, app, memo, engine, _ = review
|
||||
controller.store.save_memo(memo.next_version())
|
||||
response = call(app, '/review', cookie=SESSION_COOKIE+'=fixture-session',
|
||||
query=urlencode({'memo_id': padding+memo.id+padding}))
|
||||
assert response['status'] == 200
|
||||
observations = controller.store.policy_observations()
|
||||
assert json.loads(observations[-1]['request'])['context']['memo_version'] == 2
|
||||
assert not engine.get('fixture').entries
|
||||
|
||||
|
||||
@pytest.mark.parametrize("query", ["memo_id=", "memo_id=+", "memo_id=%60memo-1%60",
|
||||
"memo_id=memo-1&memo_id=memo-1", "memo_id=memo-1&extra=x", "memo_id=memo+1",
|
||||
"memo_id=https%3A%2F%2Fdecisions.coulomb.social%2Freview", "memo_id=%FF"])
|
||||
def test_invalid_memo_input_explains_correction_before_policy(review, query):
|
||||
controller, _, app, _, engine, _ = review
|
||||
response = call(app, '/review', cookie=SESSION_COOKIE+'=fixture-session', query=query)
|
||||
assert response['status'] == 400
|
||||
assert 'Enter the memo identifier only' in response['body']
|
||||
assert not controller.store.policy_observations()
|
||||
assert not engine.get('fixture').entries
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue