Skip to content

Commit aa9d048

Browse files
authored
Fixed serialization of lists of enum values (#248)
## Changes Currently, lists of enum values in request objects are incorrectly serialized in the `as_dict()` method. Instead of putting the enum directly into the resulting dictionary, the enum's value needs to be added to the dictionary. Closes #214. ## Tests Updated test_cluster_events to add a filter on EventType, which is a list of enum values.
1 parent 9aa7ee5 commit aa9d048

File tree

10 files changed

+27
-26
lines changed

10 files changed

+27
-26
lines changed

.codegen/service.py.tmpl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@ class {{.PascalName}}{{if eq "List" .PascalName}}Request{{end}}:{{if .Descriptio
5555
{{- end -}}
5656
{{- define "as_request_type" -}}
5757
{{- if not .Entity }}None # ERROR: No Type
58-
{{- else if .Entity.ArrayValue }}[{{if or .Entity.ArrayValue.IsObject .Entity.ArrayValue.IsExternal}}v.as_dict(){{else}}v{{end}} for v in self.{{.SnakeName}}]
58+
{{- /* This should be done recursively, but recursion in text templates is not supported. */ -}}
59+
{{- else if .Entity.ArrayValue }}[{{if or .Entity.ArrayValue.IsObject .Entity.ArrayValue.IsExternal}}v.as_dict(){{ else if .Entity.ArrayValue.Enum }}v.value{{else}}v{{end}} for v in self.{{.SnakeName}}]
5960
{{- else if or .Entity.IsObject .Entity.IsExternal }}self.{{.SnakeName}}.as_dict()
6061
{{- else if .Entity.Enum }}self.{{.SnakeName}}.value
6162
{{- else}}self.{{.SnakeName}}{{- end -}}

databricks/sdk/service/catalog.py

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

databricks/sdk/service/compute.py

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

databricks/sdk/service/iam.py

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

databricks/sdk/service/ml.py

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

databricks/sdk/service/provisioning.py

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

databricks/sdk/service/sharing.py

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

databricks/sdk/service/sql.py

Lines changed: 1 addition & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/permissions/set_generic_permissions.py

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/integration/test_clusters.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import pytest
55

66
from databricks.sdk.core import DatabricksError
7+
from databricks.sdk.service.compute import EventType
78

89

910
def test_smallest_node_type(w):
@@ -19,7 +20,7 @@ def test_latest_runtime(w):
1920
def test_cluster_events(w, env_or_skip):
2021
cluster_id = env_or_skip("TEST_DEFAULT_CLUSTER_ID")
2122
count = 0
22-
for e in w.clusters.events(cluster_id):
23+
for e in w.clusters.events(cluster_id, event_types=[EventType.STARTING, EventType.TERMINATING]):
2324
count += 1
2425
assert count > 0
2526

0 commit comments

Comments
 (0)