Skip to content

Commit 315cd34

Browse files
Abel Milashclaude
andcommitted
Add missing tests for _build_create_entity display_name and batch dispatch
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent fb15340 commit 315cd34

2 files changed

Lines changed: 34 additions & 0 deletions

File tree

tests/unit/data/test_batch_serialization.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -694,6 +694,14 @@ def test_dispatch_table_create(self):
694694
od._build_create_entity.assert_called_once_with("new_Widget", {"new_name": str}, None, None, None)
695695
self.assertEqual(len(result), 1)
696696

697+
def test_dispatch_table_create_forwards_display_name(self):
698+
"""_resolve_item forwards display_name to _build_create_entity."""
699+
client, od = self._client_and_od()
700+
od._build_create_entity.return_value = MagicMock()
701+
op = _TableCreate(table="new_Widget", columns={}, display_name="Widget")
702+
client._resolve_item(op)
703+
od._build_create_entity.assert_called_once_with("new_Widget", {}, None, None, "Widget")
704+
697705
def test_dispatch_table_delete(self):
698706
"""_resolve_item routes _TableDelete, resolving MetadataId before calling _build_delete_entity."""
699707
client, od = self._client_and_od()

tests/unit/data/test_odata_internal.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2829,5 +2829,31 @@ def test_url_contains_upsert_multiple_action(self):
28292829
self.assertEqual(req.method, "POST")
28302830

28312831

2832+
class TestBuildCreateEntity(unittest.TestCase):
2833+
"""Unit tests for _ODataClient._build_create_entity (batch deferred build)."""
2834+
2835+
def setUp(self):
2836+
self.od = _make_odata_client()
2837+
2838+
def _body(self, **kwargs):
2839+
req = self.od._build_create_entity("new_TestTable", {}, **kwargs)
2840+
return json.loads(req.body)
2841+
2842+
def test_display_name_used_in_payload_when_provided(self):
2843+
"""_build_create_entity uses the provided display_name in DisplayName."""
2844+
body = self._body(display_name="Test Table")
2845+
self.assertEqual(body["DisplayName"]["LocalizedLabels"][0]["Label"], "Test Table")
2846+
2847+
def test_display_name_defaults_to_schema_name(self):
2848+
"""_build_create_entity falls back to table schema name when display_name is omitted."""
2849+
body = self._body()
2850+
self.assertEqual(body["DisplayName"]["LocalizedLabels"][0]["Label"], "new_TestTable")
2851+
2852+
def test_display_collection_name_derived_from_display_name(self):
2853+
"""_build_create_entity appends 's' to display_name for DisplayCollectionName."""
2854+
body = self._body(display_name="Test Table")
2855+
self.assertEqual(body["DisplayCollectionName"]["LocalizedLabels"][0]["Label"], "Test Tables")
2856+
2857+
28322858
if __name__ == "__main__":
28332859
unittest.main()

0 commit comments

Comments
 (0)