forked from ChelseaKR/exitdrill
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_lossy_demo.py
More file actions
26 lines (20 loc) · 1.19 KB
/
Copy pathtest_lossy_demo.py
File metadata and controls
26 lines (20 loc) · 1.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
from pathlib import Path
from exitdrill.evaluator import run_drill
from exitdrill.loader import load_baseline, load_export
from exitdrill.models import Dimension, DimensionStatus, OverallStatus
def test_equal_entity_count_can_still_hide_unsafe_exit() -> None:
project = Path(__file__).parents[1]
good = project / "examples" / "synthetic-crm"
lossy = project / "examples" / "synthetic-crm-lossy"
baseline = load_baseline(good / "baseline.json")
package = load_export(lossy / "export.json")
assert len(baseline.entities) == len(package.entities)
result = run_drill(baseline, package, lossy / "export-files")
by_dimension = {item.dimension: item for item in result.dimensions}
assert result.overall_status is OverallStatus.NOT_STRUCTURALLY_RESTORABLE
assert by_dimension[Dimension.ENTITIES].missing_count == 1
assert by_dimension[Dimension.ENTITIES].extra_count == 1
assert by_dimension[Dimension.RELATIONSHIPS].status is DimensionStatus.FAIL
assert by_dimension[Dimension.ATTACHMENTS].invalid_count == 1
assert by_dimension[Dimension.PERMISSIONS].status is DimensionStatus.FAIL
assert by_dimension[Dimension.AUDIT_EVENTS].status is DimensionStatus.FAIL