Skip to content

Commit 61095b4

Browse files
committed
Add integration test for Process.create
1 parent 0f9628b commit 61095b4

3 files changed

Lines changed: 58 additions & 8 deletions

File tree

pyatlan/generator/templates/entity.jinja2

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -501,10 +501,10 @@ class {{ entity_def.name }}({{super_classes[0]}} {%- if "Asset" in super_classes
501501
cls,
502502
name: str,
503503
connection_qualified_name: str,
504-
process_id: str,
505504
inputs: list["Catalog"],
506505
outputs: list["Catalog"],
507-
parent: Optional[Process],
506+
process_id: Optional[str] = None,
507+
parent: Optional[Process] = None,
508508
) -> Process.Attributes:
509509
qualified_name = Process.Attributes.generate_qualified_name(
510510
name=name,
@@ -829,10 +829,10 @@ class {{ entity_def.name }}({{super_classes[0]}} {%- if "Asset" in super_classes
829829
cls,
830830
name: str,
831831
connection_qualified_name: str,
832-
process_id: str,
833832
inputs: list["Catalog"],
834833
outputs: list["Catalog"],
835-
parent: Optional[Process],
834+
process_id: Optional[str] = None,
835+
parent: Optional[Process] = None,
836836
) -> Process:
837837
return Process(
838838
attributes=Process.Attributes.create(

pyatlan/model/assets.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3126,10 +3126,10 @@ def create(
31263126
cls,
31273127
name: str,
31283128
connection_qualified_name: str,
3129-
process_id: str,
31303129
inputs: list["Catalog"],
31313130
outputs: list["Catalog"],
3132-
parent: Optional[Process],
3131+
process_id: Optional[str] = None,
3132+
parent: Optional[Process] = None,
31333133
) -> Process.Attributes:
31343134
qualified_name = Process.Attributes.generate_qualified_name(
31353135
name=name,
@@ -3160,10 +3160,10 @@ def create(
31603160
cls,
31613161
name: str,
31623162
connection_qualified_name: str,
3163-
process_id: str,
31643163
inputs: list["Catalog"],
31653164
outputs: list["Catalog"],
3166-
parent: Optional[Process],
3165+
process_id: Optional[str] = None,
3166+
parent: Optional[Process] = None,
31673167
) -> Process:
31683168
return Process(
31693169
attributes=Process.Attributes.create(

tests/integration/test_entity_model.py

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import os
44
import random
55
import string
6+
from typing import Callable, Generator
67

78
import pytest
89
import requests
@@ -18,7 +19,9 @@
1819
Column,
1920
Connection,
2021
Database,
22+
Process,
2123
Readme,
24+
S3Object,
2225
Schema,
2326
Table,
2427
View,
@@ -43,6 +46,7 @@
4346
"57f5463d-cc2a-4859-bf28-e4fa52002e8e",
4447
}
4548
TEMP_CONNECTION_GUID = "b3a5c49a-0c7c-4e66-8453-f4da8d9ce222"
49+
S3_CONNECTION_GUID = "25f2dc21-cd53-47fe-bbed-be10759d087a"
4650

4751

4852
@pytest.fixture(scope="module")
@@ -189,6 +193,7 @@ def cleanup(atlan_host, headers, atlan_api_key):
189193
"Connection",
190194
"View",
191195
"Column",
196+
"Process",
192197
"Readme",
193198
]
194199
for type_name in type_names:
@@ -825,3 +830,48 @@ def test_create_readme(client: AtlanClient):
825830
assert len(reaadmes) == 1
826831
assert (glossaries := response.assets_updated(asset_type=AtlasGlossary))
827832
assert len(glossaries) == 1
833+
834+
835+
@pytest.fixture()
836+
def make_s3_object(
837+
client: AtlanClient,
838+
) -> Generator[Callable[[str], S3Object], None, None]:
839+
created_guids = []
840+
connection = client.get_asset_by_guid(S3_CONNECTION_GUID, Connection)
841+
842+
def _make_s3_object(name: str) -> S3Object:
843+
s3_object = S3Object.create(
844+
connection_qualified_name=connection.qualified_name,
845+
name=name,
846+
aws_arn=f"arn:aws:s3:::{name}",
847+
)
848+
s3_object = client.upsert(s3_object).assets_created(S3Object)[0]
849+
created_guids.append(s3_object.guid)
850+
return s3_object
851+
852+
yield _make_s3_object
853+
854+
for guid in created_guids:
855+
client.purge_entity_by_guid(guid=guid)
856+
857+
858+
def test_process_create(client: AtlanClient, make_s3_object: Callable[[str], S3Object]):
859+
connection = client.get_asset_by_guid(S3_CONNECTION_GUID, Connection)
860+
861+
input_object = make_s3_object("Integration Source")
862+
863+
output_object = make_s3_object("Integration Target")
864+
865+
process = Process.create(
866+
name="Integration Process Test",
867+
connection_qualified_name=connection.qualified_name,
868+
process_id="doit",
869+
inputs=[input_object],
870+
outputs=[output_object],
871+
)
872+
873+
response = client.upsert(process)
874+
assert (processes := response.assets_created(Process))
875+
assert len(processes) == 1
876+
assert (assets := response.assets_updated(S3Object))
877+
assert len(assets) == 2

0 commit comments

Comments
 (0)