Skip to content

Commit 02c33c2

Browse files
committed
table test
1 parent 9d5bfc7 commit 02c33c2

File tree

2 files changed

+144
-272
lines changed

2 files changed

+144
-272
lines changed

tests/test_fieldmask.py

Lines changed: 37 additions & 136 deletions
Original file line numberDiff line numberDiff line change
@@ -3,161 +3,62 @@
33
from databricks.sdk.common.types.fieldmask import FieldMask
44

55

6-
def test_to_json_string_basic():
7-
"""Test ToJsonString with basic list of paths."""
6+
@pytest.mark.parametrize("input_paths,expected_result,description", [
7+
(["field1", "field2", "field3"], "field1,field2,field3", "basic list of paths"),
8+
(["single_field"], "single_field", "single path"),
9+
([], "", "empty paths list"),
10+
(["user.name", "user.email", "address.street"], "user.name,user.email,address.street", "nested field paths"),
11+
])
12+
def test_to_json_string(input_paths, expected_result, description):
13+
"""Test ToJsonString with various path configurations."""
814
field_mask = FieldMask()
9-
field_mask.paths = ["field1", "field2", "field3"]
15+
field_mask.paths = input_paths
1016

1117
result = field_mask.ToJsonString()
1218

13-
assert result == "field1,field2,field3"
19+
assert result == expected_result
1420

1521

16-
def test_to_json_string_single_path():
17-
"""Test ToJsonString with single path."""
22+
@pytest.mark.parametrize("input_string,expected_paths,description", [
23+
("field1,field2,field3", ["field1", "field2", "field3"], "basic comma-separated string"),
24+
("single_field", ["single_field"], "single field"),
25+
("", [], "empty string"),
26+
("user.name,user.email,address.street", ["user.name", "user.email", "address.street"], "nested field paths"),
27+
("field1, field2 , field3", ["field1", " field2 ", " field3"], "spaces around commas"),
28+
])
29+
def test_from_json_string_success_cases(input_string, expected_paths, description):
30+
"""Test FromJsonString with various valid input strings."""
1831
field_mask = FieldMask()
19-
field_mask.paths = ["single_field"]
2032

21-
result = field_mask.ToJsonString()
22-
23-
assert result == "single_field"
24-
25-
26-
def test_to_json_string_empty_paths():
27-
"""Test ToJsonString with empty paths list."""
28-
field_mask = FieldMask()
29-
field_mask.paths = []
30-
31-
result = field_mask.ToJsonString()
32-
33-
assert result == ""
34-
35-
36-
def test_to_json_string_nested_paths():
37-
"""Test ToJsonString with nested field paths."""
38-
field_mask = FieldMask()
39-
field_mask.paths = ["user.name", "user.email", "address.street"]
40-
41-
result = field_mask.ToJsonString()
42-
43-
assert result == "user.name,user.email,address.street"
44-
45-
46-
def test_from_json_string_basic():
47-
"""Test FromJsonString with basic comma-separated string."""
48-
field_mask = FieldMask()
49-
50-
field_mask.FromJsonString("field1,field2,field3")
51-
52-
assert field_mask.paths == ["field1", "field2", "field3"]
53-
54-
55-
def test_from_json_string_single_field():
56-
"""Test FromJsonString with single field."""
57-
field_mask = FieldMask()
58-
59-
field_mask.FromJsonString("single_field")
60-
61-
assert field_mask.paths == ["single_field"]
62-
63-
64-
def test_from_json_string_empty_string():
65-
"""Test FromJsonString with empty string."""
66-
field_mask = FieldMask()
67-
68-
field_mask.FromJsonString("")
69-
70-
assert field_mask.paths == []
71-
72-
73-
def test_from_json_string_nested_paths():
74-
"""Test FromJsonString with nested field paths."""
75-
field_mask = FieldMask()
76-
77-
field_mask.FromJsonString("user.name,user.email,address.street")
78-
79-
assert field_mask.paths == ["user.name", "user.email", "address.street"]
80-
81-
82-
def test_from_json_string_with_spaces():
83-
"""Test FromJsonString with spaces around commas."""
84-
field_mask = FieldMask()
85-
86-
field_mask.FromJsonString("field1, field2 , field3")
33+
field_mask.FromJsonString(input_string)
8734

88-
assert field_mask.paths == ["field1", " field2 ", " field3"]
35+
assert field_mask.paths == expected_paths
8936

9037

91-
def test_from_json_string_non_string_input():
92-
"""Test FromJsonString raises ValueError for non-string input."""
38+
@pytest.mark.parametrize("invalid_input,expected_error_substring,description", [
39+
(123, "FieldMask JSON value not a string: 123", "non-string integer input"),
40+
(None, "FieldMask JSON value not a string: None", "None input"),
41+
(["field1", "field2"], "FieldMask JSON value not a string:", "list input"),
42+
({"field": "value"}, "FieldMask JSON value not a string:", "dict input"),
43+
])
44+
def test_from_json_string_error_cases(invalid_input, expected_error_substring, description):
45+
"""Test FromJsonString raises ValueError for invalid input types."""
9346
field_mask = FieldMask()
9447

9548
with pytest.raises(ValueError) as exc_info:
96-
field_mask.FromJsonString(123)
49+
field_mask.FromJsonString(invalid_input)
9750

98-
assert "FieldMask JSON value not a string: 123" in str(exc_info.value)
51+
assert expected_error_substring in str(exc_info.value)
9952

10053

101-
def test_from_json_string_none_input():
102-
"""Test FromJsonString raises ValueError for None input."""
103-
field_mask = FieldMask()
104-
105-
with pytest.raises(ValueError) as exc_info:
106-
field_mask.FromJsonString(None)
107-
108-
assert "FieldMask JSON value not a string: None" in str(exc_info.value)
109-
110-
111-
def test_from_json_string_list_input():
112-
"""Test FromJsonString raises ValueError for list input."""
113-
field_mask = FieldMask()
114-
115-
with pytest.raises(ValueError) as exc_info:
116-
field_mask.FromJsonString(["field1", "field2"])
117-
118-
assert "FieldMask JSON value not a string:" in str(exc_info.value)
119-
120-
121-
def test_from_json_string_dict_input():
122-
"""Test FromJsonString raises ValueError for dict input."""
123-
field_mask = FieldMask()
124-
125-
with pytest.raises(ValueError) as exc_info:
126-
field_mask.FromJsonString({"field": "value"})
127-
128-
assert "FieldMask JSON value not a string:" in str(exc_info.value)
129-
130-
131-
def test_roundtrip_conversion():
54+
@pytest.mark.parametrize("original_paths,description", [
55+
(["user.name", "user.email", "profile.settings"], "multiple nested fields"),
56+
(["single_field"], "single field"),
57+
([], "empty paths"),
58+
])
59+
def test_roundtrip_conversion(original_paths, description):
13260
"""Test that ToJsonString and FromJsonString are inverse operations."""
13361
field_mask = FieldMask()
134-
original_paths = ["user.name", "user.email", "profile.settings"]
135-
field_mask.paths = original_paths
136-
137-
# Convert to string and back.
138-
json_string = field_mask.ToJsonString()
139-
field_mask.FromJsonString(json_string)
140-
141-
assert field_mask.paths == original_paths
142-
143-
144-
def test_roundtrip_conversion_single_field():
145-
"""Test roundtrip conversion with single field."""
146-
field_mask = FieldMask()
147-
original_paths = ["single_field"]
148-
field_mask.paths = original_paths
149-
150-
# Convert to string and back.
151-
json_string = field_mask.ToJsonString()
152-
field_mask.FromJsonString(json_string)
153-
154-
assert field_mask.paths == original_paths
155-
156-
157-
def test_roundtrip_conversion_empty():
158-
"""Test roundtrip conversion with empty paths."""
159-
field_mask = FieldMask()
160-
original_paths = []
16162
field_mask.paths = original_paths
16263

16364
# Convert to string and back.

0 commit comments

Comments
 (0)