[verified] add user subset reset scope
(cherry picked from commit e1e3ec96a2)
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
from run.initialization import reset_environment
|
||||
|
||||
|
||||
def test_reset_user_subset_scope_only_runs_user_subset_cleanup(monkeypatch):
|
||||
calls = []
|
||||
|
||||
monkeypatch.setattr(
|
||||
reset_environment,
|
||||
"_sb_headers",
|
||||
lambda: ("http://192.168.0.94:8000", {"Authorization": "Bearer redacted"}),
|
||||
)
|
||||
monkeypatch.setattr(
|
||||
reset_environment,
|
||||
"_assert_reset_allowed",
|
||||
lambda url, scope: calls.append(("guard", url, scope)),
|
||||
)
|
||||
monkeypatch.setattr(
|
||||
reset_environment,
|
||||
"_clear_user_subset_files",
|
||||
lambda: {"files_rows_deleted": 2, "storage_objects_removed": 2, "errors": []},
|
||||
)
|
||||
|
||||
def fail_if_called(*_args, **_kwargs):
|
||||
raise AssertionError("reset(scope='user-subset') must not clear unrelated tables or databases")
|
||||
|
||||
monkeypatch.setattr(reset_environment, "_clear_tables", fail_if_called)
|
||||
monkeypatch.setattr(reset_environment, "_neo4j_drop_all_non_system", fail_if_called)
|
||||
monkeypatch.setattr(reset_environment, "_clear_exam_storage", fail_if_called)
|
||||
|
||||
result = reset_environment.reset(scope="user-subset")
|
||||
|
||||
assert calls == [("guard", "http://192.168.0.94:8000", "user-subset")]
|
||||
assert result == {
|
||||
"scope": "user-subset",
|
||||
"user_subset": {"files_rows_deleted": 2, "storage_objects_removed": 2, "errors": []},
|
||||
}
|
||||
|
||||
|
||||
def test_reset_accepts_case_insensitive_user_subset_scope(monkeypatch):
|
||||
monkeypatch.setattr(reset_environment, "_sb_headers", lambda: ("http://192.168.0.94:8000", {}))
|
||||
monkeypatch.setattr(reset_environment, "_assert_reset_allowed", lambda *_args, **_kwargs: None)
|
||||
monkeypatch.setattr(
|
||||
reset_environment,
|
||||
"_clear_user_subset_files",
|
||||
lambda: {"files_rows_deleted": 0, "storage_objects_removed": 0, "errors": []},
|
||||
)
|
||||
|
||||
assert reset_environment.reset(scope="USER-SUBSET") == {
|
||||
"scope": "user-subset",
|
||||
"user_subset": {"files_rows_deleted": 0, "storage_objects_removed": 0, "errors": []},
|
||||
}
|
||||
Reference in New Issue
Block a user