Skip to content

Commit 8fe6520

Browse files
authored
Merge pull request #56 from mdsol/feat/MCC-1484891-harmonize-publish-response-envelope
[MCC-1484891] Python Lib - Align publish/dry_publish results on canonical envelope
2 parents ed9b5d0 + e49abc1 commit 8fe6520

3 files changed

Lines changed: 34 additions & 2 deletions

File tree

‎dataconnect/models.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ class ResultMetadata:
7373
dataset_version: int | None = None
7474
column_count: int | None = None
7575
dataset_uuid: str | None = None
76-
dataset_batch_number: int | None = None
76+
dataset_batch_number: int | None = field(default=None, repr=False)
7777

7878

7979
@dataclass(frozen=True)

‎pyproject.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "dataconnect-library-python"
3-
version = "1.0.0"
3+
version = "1.1.0"
44
description = "Python library built by Medidata for connecting to Data Connect and programmatically querying and retrieving data."
55
authors = ["Team 348 (SDK) <List_custom_t348_cds_sdk@3ds.com>"]
66
packages = [{include = "dataconnect"}]

‎tests/test_publish_envelope.py‎

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
from __future__ import annotations
1515

1616
import json
17+
from collections.abc import Callable
1718
from unittest.mock import MagicMock, patch
1819

1920
import pandas as pd
@@ -269,3 +270,34 @@ def test_missing_sections_yield_defaults(self) -> None:
269270
def test_none_transport_response_maps_to_failure(self) -> None:
270271
assert dry_publish_response_to_domain(None).success is False
271272
assert publish_response_to_domain(None).success is False
273+
274+
275+
class TestBatchNumberIsHiddenFromOutput:
276+
@pytest.mark.parametrize(
277+
("envelope", "over_wire"),
278+
[
279+
(FAILED_DRY_PUBLISH_ENVELOPE, _dry_publish_over_wire),
280+
(PASSED_DRY_PUBLISH_ENVELOPE, _dry_publish_over_wire),
281+
(PUBLISH_ENVELOPE, _publish_over_wire),
282+
],
283+
ids=["dry_publish_failure", "dry_publish_success", "publish"],
284+
)
285+
def test_batch_number_absent_from_printed_output(
286+
self, envelope: dict, over_wire: Callable[[dict], DryPublishResult | PublishResult]
287+
) -> None:
288+
result = over_wire(envelope)
289+
290+
assert "dataset_batch_number" not in repr(result)
291+
assert "dataset_batch_number" not in repr(result.metadata)
292+
293+
def test_publish_batch_number_is_still_readable(self) -> None:
294+
result = _publish_over_wire(PUBLISH_ENVELOPE)
295+
296+
assert result.metadata.dataset_batch_number == 1
297+
assert result.dataset_batch_number == 1
298+
299+
def test_other_metadata_still_printed(self) -> None:
300+
printed = repr(_publish_over_wire(PUBLISH_ENVELOPE).metadata)
301+
302+
for field_name in ("dataset_name", "dataset_version", "column_count", "dataset_uuid"):
303+
assert field_name in printed

0 commit comments

Comments
 (0)