diff --git a/dataconnect/models.py b/dataconnect/models.py index 9d022eb..e5f3495 100644 --- a/dataconnect/models.py +++ b/dataconnect/models.py @@ -73,7 +73,7 @@ class ResultMetadata: dataset_version: int | None = None column_count: int | None = None dataset_uuid: str | None = None - dataset_batch_number: int | None = None + dataset_batch_number: int | None = field(default=None, repr=False) @dataclass(frozen=True) diff --git a/pyproject.toml b/pyproject.toml index 2036b32..994e6ec 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "dataconnect-library-python" -version = "1.0.0" +version = "1.1.0" description = "Python library built by Medidata for connecting to Data Connect and programmatically querying and retrieving data." authors = ["Team 348 (SDK) "] packages = [{include = "dataconnect"}] diff --git a/tests/test_publish_envelope.py b/tests/test_publish_envelope.py index 5e36d20..e8aa265 100644 --- a/tests/test_publish_envelope.py +++ b/tests/test_publish_envelope.py @@ -14,6 +14,7 @@ from __future__ import annotations import json +from collections.abc import Callable from unittest.mock import MagicMock, patch import pandas as pd @@ -269,3 +270,34 @@ def test_missing_sections_yield_defaults(self) -> None: def test_none_transport_response_maps_to_failure(self) -> None: assert dry_publish_response_to_domain(None).success is False assert publish_response_to_domain(None).success is False + + +class TestBatchNumberIsHiddenFromOutput: + @pytest.mark.parametrize( + ("envelope", "over_wire"), + [ + (FAILED_DRY_PUBLISH_ENVELOPE, _dry_publish_over_wire), + (PASSED_DRY_PUBLISH_ENVELOPE, _dry_publish_over_wire), + (PUBLISH_ENVELOPE, _publish_over_wire), + ], + ids=["dry_publish_failure", "dry_publish_success", "publish"], + ) + def test_batch_number_absent_from_printed_output( + self, envelope: dict, over_wire: Callable[[dict], DryPublishResult | PublishResult] + ) -> None: + result = over_wire(envelope) + + assert "dataset_batch_number" not in repr(result) + assert "dataset_batch_number" not in repr(result.metadata) + + def test_publish_batch_number_is_still_readable(self) -> None: + result = _publish_over_wire(PUBLISH_ENVELOPE) + + assert result.metadata.dataset_batch_number == 1 + assert result.dataset_batch_number == 1 + + def test_other_metadata_still_printed(self) -> None: + printed = repr(_publish_over_wire(PUBLISH_ENVELOPE).metadata) + + for field_name in ("dataset_name", "dataset_version", "column_count", "dataset_uuid"): + assert field_name in printed