Skip to content

Commit ea9142f

Browse files
committed
Add sdkVersion to config.json as part of deploy
1 parent eff3ea1 commit ea9142f

3 files changed

Lines changed: 45 additions & 22 deletions

File tree

src/datacustomcode/deploy.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636

3737
from datacustomcode.cmd import cmd_output
3838
from datacustomcode.scan import scan_file
39+
from datacustomcode.version import get_version
3940

4041
if TYPE_CHECKING:
4142
from datacustomcode.credentials import Credentials
@@ -284,6 +285,7 @@ class DataTransformConfig(BaseModel):
284285
"entryPoint": "entrypoint.py",
285286
"dataspace": "default",
286287
"permissions": {"read": {"dlo": ""}, "write": {"dlo": ""}},
288+
"sdkVersion": get_version(),
287289
}
288290

289291

src/datacustomcode/version.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
"""Version information for the Data Cloud Custom Code SDK."""
2+
3+
import importlib.metadata
4+
5+
6+
def get_version() -> str:
7+
"""Get the current version of the SDK.
8+
9+
Returns:
10+
str: The version string, either from package metadata.
11+
"""
12+
# First try to get version from installed package metadata
13+
return importlib.metadata.version("sfdc-datacloud-customcode-sdk")

tests/test_deploy.py

Lines changed: 30 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -10,24 +10,28 @@
1010
import requests
1111

1212
from datacustomcode.credentials import Credentials
13-
from datacustomcode.deploy import (
14-
AccessTokenResponse,
15-
CreateDeploymentResponse,
16-
DataTransformConfig,
17-
DeploymentsResponse,
18-
TransformationJobMetadata,
19-
_make_api_call,
20-
_retrieve_access_token,
21-
create_data_transform,
22-
create_data_transform_config,
23-
create_deployment,
24-
deploy_full,
25-
get_data_transform_config,
26-
get_deployments,
27-
run_data_transform,
28-
wait_for_deployment,
29-
zip_and_upload_directory,
30-
)
13+
from datacustomcode.version import get_version
14+
15+
# Patch get_version before importing deploy module
16+
with patch("datacustomcode.version.get_version", return_value="1.2.3"):
17+
from datacustomcode.deploy import (
18+
AccessTokenResponse,
19+
CreateDeploymentResponse,
20+
DataTransformConfig,
21+
DeploymentsResponse,
22+
TransformationJobMetadata,
23+
_make_api_call,
24+
_retrieve_access_token,
25+
create_data_transform,
26+
create_data_transform_config,
27+
create_deployment,
28+
deploy_full,
29+
get_data_transform_config,
30+
get_deployments,
31+
run_data_transform,
32+
wait_for_deployment,
33+
zip_and_upload_directory,
34+
)
3135

3236

3337
class TestMakeApiCall:
@@ -248,10 +252,14 @@ def test_create_data_transform_config(
248252
mock_get_config.assert_called_once_with("/test/dir")
249253
mock_file.assert_called_once_with("/test/dir/config.json", "w")
250254
mock_json_dump.assert_called_once()
251-
# Check permissions in config
252-
config = mock_json_dump.call_args[0][0]
253-
assert config["permissions"]["read"]["dlo"] == "input_dlo"
254-
assert config["permissions"]["write"]["dlo"] == "output_dlo"
255+
256+
# Verify the config contains all required fields including sdkVersion
257+
config_data = mock_json_dump.call_args[0][0]
258+
assert config_data["entryPoint"] == "entrypoint.py"
259+
assert config_data["dataspace"] == "default"
260+
assert config_data["permissions"]["read"]["dlo"] == "input_dlo"
261+
assert config_data["permissions"]["write"]["dlo"] == "output_dlo"
262+
assert config_data["sdkVersion"] == "1.2.3"
255263

256264

257265
class TestCreateDataTransform:

0 commit comments

Comments
 (0)