|
37 | 37 | SummaryCounters, |
38 | 38 | SummaryInputPosition, |
39 | 39 | ) |
| 40 | +from neo4j._work.summary import ( |
| 41 | + _CLASSIFICATION_LOOKUP, |
| 42 | + _SEVERITY_LOOKUP, |
| 43 | +) |
40 | 44 |
|
41 | 45 | from ...._deprecated_imports import ( |
42 | 46 | NotificationCategory, |
@@ -388,6 +392,73 @@ def test_non_notification_statuses(raw_status, summary_args_kwargs) -> None: |
388 | 392 | assert_is_non_notification_status(status) |
389 | 393 |
|
390 | 394 |
|
| 395 | +@pytest.mark.parametrize( |
| 396 | + "raw_status", |
| 397 | + ( |
| 398 | + STATUS_SUCCESS, |
| 399 | + STATUS_OMITTED_RESULT, |
| 400 | + STATUS_NO_DATA, |
| 401 | + StatusOrderHelper.make_raw_status(0, "SUCCESS"), |
| 402 | + StatusOrderHelper.make_raw_status(0, "OMITTED"), |
| 403 | + StatusOrderHelper.make_raw_status(0, "NODATA"), |
| 404 | + StatusOrderHelper.make_raw_status(0, "WARNING"), |
| 405 | + StatusOrderHelper.make_raw_status(0, "INFORMATION"), |
| 406 | + ), |
| 407 | +) |
| 408 | +def test_status_order_helper_repr(raw_status, summary_args_kwargs) -> None: |
| 409 | + args, kwargs = summary_args_kwargs |
| 410 | + kwargs["metadata"]["statuses"] = [raw_status] |
| 411 | + |
| 412 | + expected_status = raw_status["gql_status"] |
| 413 | + expected_description = raw_status["status_description"] |
| 414 | + expected_diag_record = raw_status.get("diagnostic_record", {}) |
| 415 | + expected_position = SummaryInputPosition._from_metadata( |
| 416 | + expected_diag_record.get("_position") |
| 417 | + ) |
| 418 | + expected_raw_cls = expected_diag_record.get("_classification") |
| 419 | + expected_cls = _CLASSIFICATION_LOOKUP.get( |
| 420 | + expected_raw_cls, NotificationClassification.UNKNOWN |
| 421 | + ) |
| 422 | + expected_raw_sev = expected_diag_record.get("_severity") |
| 423 | + expected_sev = _SEVERITY_LOOKUP.get( |
| 424 | + expected_raw_sev, NotificationSeverity.UNKNOWN |
| 425 | + ) |
| 426 | + |
| 427 | + expected = ( |
| 428 | + "<GqlStatusObject " |
| 429 | + f"gql_status={expected_status!r}, " |
| 430 | + f"status_description={expected_description!r}, " |
| 431 | + f"position={expected_position!r}, " |
| 432 | + f"raw_classification={expected_raw_cls!r}, " |
| 433 | + f"classification={expected_cls!r}, " |
| 434 | + f"raw_severity={expected_raw_sev!r}, " |
| 435 | + f"severity={expected_sev!r}, " |
| 436 | + f"diagnostic_record={expected_diag_record!r}" |
| 437 | + ">" |
| 438 | + ) |
| 439 | + |
| 440 | + summary = ResultSummary(*args, **kwargs) |
| 441 | + status_objects: t.Sequence[GqlStatusObject] = summary.gql_status_objects |
| 442 | + |
| 443 | + assert len(status_objects) == 1 |
| 444 | + status = status_objects[0] |
| 445 | + |
| 446 | + assert repr(status) == expected |
| 447 | + |
| 448 | + |
| 449 | +def test_summary_input_position_repr(): |
| 450 | + position = SummaryInputPosition._from_metadata( |
| 451 | + { |
| 452 | + "line": 42, |
| 453 | + "column": 1337, |
| 454 | + "offset": 666, |
| 455 | + } |
| 456 | + ) |
| 457 | + expected = "<SummaryInputPosition line=42, column=1337, offset=666>" |
| 458 | + |
| 459 | + assert repr(position) == expected |
| 460 | + |
| 461 | + |
391 | 462 | @pytest.mark.parametrize( |
392 | 463 | "types", |
393 | 464 | ( |
|
0 commit comments