FFF =================================== FAILURES =================================== ___ test_separation_preserves_original_and_later_work_and_closed_access[all] ___ app = tmp_path = PosixPath('/private/var/folders/kn/1_8nby0s6m7g8b2k6grh24wm0000gn/T/pytest-of-sandyrestall/pytest-69/test_separation_preserves_orig0') scope = 'all' @pytest.mark.parametrize('scope',['all','subset','none']) def test_separation_preserves_original_and_later_work_and_closed_access(app,tmp_path,scope): c=client(app);a=merged(app,c,True);j=a['job'];b=a['target'];extra=work(c,customer(c,b['customer_id'])).json() edit(c,j,notes='A later saved work detail must remain') from test_portal_access import enabled,PASSWORD new_portal,_,_=enabled(app,c,b) ids=[j['id'],a['second']['id']] if scope=='all' else [j['id']] if scope=='subset' else [] p=separation(c,a['merge']['id'],ids,name='restore_before_merge');assert p['can_confirm'],p['errors'] before=table_rows(app.state.store.root,'oak');stats=c.get('/api/reports/operations?start=2026-01-01&end=2026-12-31').json() > r=correct(c,p);assert r.status_code==200,r.text;check(app) ^^^^^^^^^^ tests/test_merge_corrections.py:50: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_customer_moves.py:32: in check return validate(db,require) ^^^^^^^^^^^^^^^^^^^^ backend/customer_recovery.py:182: in validate corrections=validate_corrections(db,require,histories,transfers,jobs,chains) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ backend/merge_correction_recovery.py:81: in validate require(bool(before),'Correction feedback review is missing.') _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ok = False, message = 'Correction feedback review is missing.' > def require(ok,message):assert ok,message ^^^^^^^^^^^^^^^^^ E AssertionError: Correction feedback review is missing. E assert False tests/test_customer_moves.py:31: AssertionError _ test_separation_preserves_original_and_later_work_and_closed_access[subset] __ app = tmp_path = PosixPath('/private/var/folders/kn/1_8nby0s6m7g8b2k6grh24wm0000gn/T/pytest-of-sandyrestall/pytest-69/test_separation_preserves_orig1') scope = 'subset' @pytest.mark.parametrize('scope',['all','subset','none']) def test_separation_preserves_original_and_later_work_and_closed_access(app,tmp_path,scope): c=client(app);a=merged(app,c,True);j=a['job'];b=a['target'];extra=work(c,customer(c,b['customer_id'])).json() edit(c,j,notes='A later saved work detail must remain') from test_portal_access import enabled,PASSWORD new_portal,_,_=enabled(app,c,b) ids=[j['id'],a['second']['id']] if scope=='all' else [j['id']] if scope=='subset' else [] p=separation(c,a['merge']['id'],ids,name='restore_before_merge');assert p['can_confirm'],p['errors'] before=table_rows(app.state.store.root,'oak');stats=c.get('/api/reports/operations?start=2026-01-01&end=2026-12-31').json() > r=correct(c,p);assert r.status_code==200,r.text;check(app) ^^^^^^^^^^ tests/test_merge_corrections.py:50: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_customer_moves.py:32: in check return validate(db,require) ^^^^^^^^^^^^^^^^^^^^ backend/customer_recovery.py:182: in validate corrections=validate_corrections(db,require,histories,transfers,jobs,chains) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ backend/merge_correction_recovery.py:81: in validate require(bool(before),'Correction feedback review is missing.') _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ok = False, message = 'Correction feedback review is missing.' > def require(ok,message):assert ok,message ^^^^^^^^^^^^^^^^^ E AssertionError: Correction feedback review is missing. E assert False tests/test_customer_moves.py:31: AssertionError __ test_separation_preserves_original_and_later_work_and_closed_access[none] ___ app = tmp_path = PosixPath('/private/var/folders/kn/1_8nby0s6m7g8b2k6grh24wm0000gn/T/pytest-of-sandyrestall/pytest-69/test_separation_preserves_orig2') scope = 'none' @pytest.mark.parametrize('scope',['all','subset','none']) def test_separation_preserves_original_and_later_work_and_closed_access(app,tmp_path,scope): c=client(app);a=merged(app,c,True);j=a['job'];b=a['target'];extra=work(c,customer(c,b['customer_id'])).json() edit(c,j,notes='A later saved work detail must remain') from test_portal_access import enabled,PASSWORD new_portal,_,_=enabled(app,c,b) ids=[j['id'],a['second']['id']] if scope=='all' else [j['id']] if scope=='subset' else [] p=separation(c,a['merge']['id'],ids,name='restore_before_merge');assert p['can_confirm'],p['errors'] before=table_rows(app.state.store.root,'oak');stats=c.get('/api/reports/operations?start=2026-01-01&end=2026-12-31').json() > r=correct(c,p);assert r.status_code==200,r.text;check(app) ^^^^^^^^^^ tests/test_merge_corrections.py:50: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_customer_moves.py:32: in check return validate(db,require) ^^^^^^^^^^^^^^^^^^^^ backend/customer_recovery.py:182: in validate corrections=validate_corrections(db,require,histories,transfers,jobs,chains) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ backend/merge_correction_recovery.py:81: in validate require(bool(before),'Correction feedback review is missing.') _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ok = False, message = 'Correction feedback review is missing.' > def require(ok,message):assert ok,message ^^^^^^^^^^^^^^^^^ E AssertionError: Correction feedback review is missing. E assert False tests/test_customer_moves.py:31: AssertionError =========================== short test summary info ============================ FAILED tests/test_merge_corrections.py::test_separation_preserves_original_and_later_work_and_closed_access[all] FAILED tests/test_merge_corrections.py::test_separation_preserves_original_and_later_work_and_closed_access[subset] FAILED tests/test_merge_corrections.py::test_separation_preserves_original_and_later_work_and_closed_access[none] !!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 3 failures !!!!!!!!!!!!!!!!!!!!!!!!!!! 3 failed, 1 warning in 2.52s