diff --git a/tests/unit/model/anaplan_app_test.py b/tests/unit/model/anaplan_app_test.py new file mode 100644 index 000000000..cfbd541a2 --- /dev/null +++ b/tests/unit/model/anaplan_app_test.py @@ -0,0 +1,69 @@ +import pytest + +from pyatlan.model.assets import AnaplanApp +from tests.unit.model.constants import ( + ANAPLAN_APP_NAME, + ANAPLAN_APP_QUALIFIED_NAME, + ANAPLAN_CONNECTION_QUALIFIED_NAME, + ANAPLAN_CONNECTOR_TYPE, +) + + +@pytest.mark.parametrize( + "name, connection_qualified_name, message", + [ + (None, "connection/name", "name is required"), + (ANAPLAN_APP_NAME, None, "connection_qualified_name is required"), + ], +) +def test_create_with_missing_parameters_raise_value_error( + name: str, connection_qualified_name: str, message: str +): + with pytest.raises(ValueError, match=message): + AnaplanApp.create( + name=name, connection_qualified_name=connection_qualified_name + ) + + +def test_create(): + sut = AnaplanApp.creator( + name=ANAPLAN_APP_NAME, + connection_qualified_name=ANAPLAN_CONNECTION_QUALIFIED_NAME, + ) + + assert sut.name == ANAPLAN_APP_NAME + assert sut.connection_qualified_name == ANAPLAN_CONNECTION_QUALIFIED_NAME + assert sut.qualified_name == ANAPLAN_APP_QUALIFIED_NAME + assert sut.connector_name == ANAPLAN_CONNECTOR_TYPE + + +@pytest.mark.parametrize( + "qualified_name, name, message", + [ + (None, ANAPLAN_CONNECTION_QUALIFIED_NAME, "qualified_name is required"), + (ANAPLAN_APP_NAME, None, "name is required"), + ], +) +def test_create_for_modification_with_invalid_parameter_raises_value_error( + qualified_name: str, name: str, message: str +): + with pytest.raises(ValueError, match=message): + AnaplanApp.create_for_modification(qualified_name=qualified_name, name=name) + + +def test_create_for_modification(): + sut = AnaplanApp.create_for_modification( + qualified_name=ANAPLAN_APP_QUALIFIED_NAME, name=ANAPLAN_APP_NAME + ) + + assert sut.qualified_name == ANAPLAN_APP_QUALIFIED_NAME + assert sut.name == ANAPLAN_APP_NAME + + +def test_trim_to_required(): + sut = AnaplanApp.create_for_modification( + name=ANAPLAN_APP_NAME, qualified_name=ANAPLAN_APP_QUALIFIED_NAME + ).trim_to_required() + + assert sut.name == ANAPLAN_APP_NAME + assert sut.qualified_name == ANAPLAN_APP_QUALIFIED_NAME diff --git a/tests/unit/model/anaplan_dimension_test.py b/tests/unit/model/anaplan_dimension_test.py new file mode 100644 index 000000000..94ed061bc --- /dev/null +++ b/tests/unit/model/anaplan_dimension_test.py @@ -0,0 +1,72 @@ +import pytest + +from pyatlan.model.assets import AnaplanDimension +from tests.unit.model.constants import ( + ANAPLAN_CONNECTION_QUALIFIED_NAME, + ANAPLAN_CONNECTOR_TYPE, + ANAPLAN_DIMENSION_NAME, + ANAPLAN_DIMENSION_QUALIFIED_NAME, + ANAPLAN_MODEL_QUALIFIED_NAME, +) + + +@pytest.mark.parametrize( + "name, connection_qualified_name, message", + [ + (None, "connection/name", "name is required"), + (ANAPLAN_DIMENSION_NAME, None, "connection_qualified_name is required"), + ], +) +def test_create_with_missing_parameters_raise_value_error( + name: str, connection_qualified_name: str, message: str +): + with pytest.raises(ValueError, match=message): + AnaplanDimension.create( + name=name, connection_qualified_name=connection_qualified_name + ) + + +def test_create(): + sut = AnaplanDimension.creator( + name=ANAPLAN_DIMENSION_NAME, + model_qualified_name=ANAPLAN_MODEL_QUALIFIED_NAME, + ) + + assert sut.name == ANAPLAN_DIMENSION_NAME + assert sut.connection_qualified_name == ANAPLAN_CONNECTION_QUALIFIED_NAME + assert sut.qualified_name == ANAPLAN_DIMENSION_QUALIFIED_NAME + assert sut.connector_name == ANAPLAN_CONNECTOR_TYPE + + +@pytest.mark.parametrize( + "qualified_name, name, message", + [ + (None, ANAPLAN_MODEL_QUALIFIED_NAME, "qualified_name is required"), + (ANAPLAN_DIMENSION_NAME, None, "name is required"), + ], +) +def test_create_for_modification_with_invalid_parameter_raises_value_error( + qualified_name: str, name: str, message: str +): + with pytest.raises(ValueError, match=message): + AnaplanDimension.create_for_modification( + qualified_name=qualified_name, name=name + ) + + +def test_create_for_modification(): + sut = AnaplanDimension.create_for_modification( + qualified_name=ANAPLAN_DIMENSION_QUALIFIED_NAME, name=ANAPLAN_DIMENSION_NAME + ) + + assert sut.qualified_name == ANAPLAN_DIMENSION_QUALIFIED_NAME + assert sut.name == ANAPLAN_DIMENSION_NAME + + +def test_trim_to_required(): + sut = AnaplanDimension.create_for_modification( + name=ANAPLAN_DIMENSION_NAME, qualified_name=ANAPLAN_DIMENSION_QUALIFIED_NAME + ).trim_to_required() + + assert sut.name == ANAPLAN_DIMENSION_NAME + assert sut.qualified_name == ANAPLAN_DIMENSION_QUALIFIED_NAME diff --git a/tests/unit/model/anaplan_line_item_test.py b/tests/unit/model/anaplan_line_item_test.py new file mode 100644 index 000000000..2a145b5f1 --- /dev/null +++ b/tests/unit/model/anaplan_line_item_test.py @@ -0,0 +1,72 @@ +import pytest + +from pyatlan.model.assets import AnaplanLineItem +from tests.unit.model.constants import ( + ANAPLAN_CONNECTION_QUALIFIED_NAME, + ANAPLAN_CONNECTOR_TYPE, + ANAPLAN_LINE_ITEM_NAME, + ANAPLAN_LINE_ITEM_QUALIFIED_NAME, + ANAPLAN_MODULE_QUALIFIED_NAME, +) + + +@pytest.mark.parametrize( + "name, connection_qualified_name, message", + [ + (None, "connection/name", "name is required"), + (ANAPLAN_LINE_ITEM_NAME, None, "connection_qualified_name is required"), + ], +) +def test_create_with_missing_parameters_raise_value_error( + name: str, connection_qualified_name: str, message: str +): + with pytest.raises(ValueError, match=message): + AnaplanLineItem.create( + name=name, connection_qualified_name=connection_qualified_name + ) + + +def test_create(): + sut = AnaplanLineItem.creator( + name=ANAPLAN_LINE_ITEM_NAME, + module_qualified_name=ANAPLAN_MODULE_QUALIFIED_NAME, + ) + + assert sut.name == ANAPLAN_LINE_ITEM_NAME + assert sut.connection_qualified_name == ANAPLAN_CONNECTION_QUALIFIED_NAME + assert sut.qualified_name == ANAPLAN_LINE_ITEM_QUALIFIED_NAME + assert sut.connector_name == ANAPLAN_CONNECTOR_TYPE + + +@pytest.mark.parametrize( + "qualified_name, name, message", + [ + (None, ANAPLAN_MODULE_QUALIFIED_NAME, "qualified_name is required"), + (ANAPLAN_LINE_ITEM_NAME, None, "name is required"), + ], +) +def test_create_for_modification_with_invalid_parameter_raises_value_error( + qualified_name: str, name: str, message: str +): + with pytest.raises(ValueError, match=message): + AnaplanLineItem.create_for_modification( + qualified_name=qualified_name, name=name + ) + + +def test_create_for_modification(): + sut = AnaplanLineItem.create_for_modification( + qualified_name=ANAPLAN_LINE_ITEM_QUALIFIED_NAME, name=ANAPLAN_LINE_ITEM_NAME + ) + + assert sut.qualified_name == ANAPLAN_LINE_ITEM_QUALIFIED_NAME + assert sut.name == ANAPLAN_LINE_ITEM_NAME + + +def test_trim_to_required(): + sut = AnaplanLineItem.create_for_modification( + name=ANAPLAN_LINE_ITEM_NAME, qualified_name=ANAPLAN_LINE_ITEM_QUALIFIED_NAME + ).trim_to_required() + + assert sut.name == ANAPLAN_LINE_ITEM_NAME + assert sut.qualified_name == ANAPLAN_LINE_ITEM_QUALIFIED_NAME diff --git a/tests/unit/model/anaplan_list_test.py b/tests/unit/model/anaplan_list_test.py new file mode 100644 index 000000000..c862fd4ee --- /dev/null +++ b/tests/unit/model/anaplan_list_test.py @@ -0,0 +1,70 @@ +import pytest + +from pyatlan.model.assets import AnaplanList +from tests.unit.model.constants import ( + ANAPLAN_CONNECTION_QUALIFIED_NAME, + ANAPLAN_CONNECTOR_TYPE, + ANAPLAN_LIST_NAME, + ANAPLAN_LIST_QUALIFIED_NAME, + ANAPLAN_MODEL_QUALIFIED_NAME, +) + + +@pytest.mark.parametrize( + "name, connection_qualified_name, message", + [ + (None, "connection/name", "name is required"), + (ANAPLAN_LIST_NAME, None, "connection_qualified_name is required"), + ], +) +def test_create_with_missing_parameters_raise_value_error( + name: str, connection_qualified_name: str, message: str +): + with pytest.raises(ValueError, match=message): + AnaplanList.create( + name=name, connection_qualified_name=connection_qualified_name + ) + + +def test_create(): + sut = AnaplanList.creator( + name=ANAPLAN_LIST_NAME, + model_qualified_name=ANAPLAN_MODEL_QUALIFIED_NAME, + ) + + assert sut.name == ANAPLAN_LIST_NAME + assert sut.connection_qualified_name == ANAPLAN_CONNECTION_QUALIFIED_NAME + assert sut.qualified_name == ANAPLAN_LIST_QUALIFIED_NAME + assert sut.connector_name == ANAPLAN_CONNECTOR_TYPE + + +@pytest.mark.parametrize( + "qualified_name, name, message", + [ + (None, ANAPLAN_MODEL_QUALIFIED_NAME, "qualified_name is required"), + (ANAPLAN_LIST_NAME, None, "name is required"), + ], +) +def test_create_for_modification_with_invalid_parameter_raises_value_error( + qualified_name: str, name: str, message: str +): + with pytest.raises(ValueError, match=message): + AnaplanList.create_for_modification(qualified_name=qualified_name, name=name) + + +def test_create_for_modification(): + sut = AnaplanList.create_for_modification( + qualified_name=ANAPLAN_LIST_QUALIFIED_NAME, name=ANAPLAN_LIST_NAME + ) + + assert sut.qualified_name == ANAPLAN_LIST_QUALIFIED_NAME + assert sut.name == ANAPLAN_LIST_NAME + + +def test_trim_to_required(): + sut = AnaplanList.create_for_modification( + name=ANAPLAN_LIST_NAME, qualified_name=ANAPLAN_LIST_QUALIFIED_NAME + ).trim_to_required() + + assert sut.name == ANAPLAN_LIST_NAME + assert sut.qualified_name == ANAPLAN_LIST_QUALIFIED_NAME diff --git a/tests/unit/model/anaplan_model_test.py b/tests/unit/model/anaplan_model_test.py new file mode 100644 index 000000000..b8328f84f --- /dev/null +++ b/tests/unit/model/anaplan_model_test.py @@ -0,0 +1,70 @@ +import pytest + +from pyatlan.model.assets import AnaplanModel +from tests.unit.model.constants import ( + ANAPLAN_CONNECTION_QUALIFIED_NAME, + ANAPLAN_CONNECTOR_TYPE, + ANAPLAN_MODEL_NAME, + ANAPLAN_MODEL_QUALIFIED_NAME, + ANAPLAN_WORKSPACE_QUALIFIED_NAME, +) + + +@pytest.mark.parametrize( + "name, connection_qualified_name, message", + [ + (None, "connection/name", "name is required"), + (ANAPLAN_MODEL_NAME, None, "connection_qualified_name is required"), + ], +) +def test_create_with_missing_parameters_raise_value_error( + name: str, connection_qualified_name: str, message: str +): + with pytest.raises(ValueError, match=message): + AnaplanModel.create( + name=name, connection_qualified_name=connection_qualified_name + ) + + +def test_create(): + sut = AnaplanModel.creator( + name=ANAPLAN_MODEL_NAME, + workspace_qualified_name=ANAPLAN_WORKSPACE_QUALIFIED_NAME, + ) + + assert sut.name == ANAPLAN_MODEL_NAME + assert sut.connection_qualified_name == ANAPLAN_CONNECTION_QUALIFIED_NAME + assert sut.qualified_name == ANAPLAN_MODEL_QUALIFIED_NAME + assert sut.connector_name == ANAPLAN_CONNECTOR_TYPE + + +@pytest.mark.parametrize( + "qualified_name, name, message", + [ + (None, ANAPLAN_WORKSPACE_QUALIFIED_NAME, "qualified_name is required"), + (ANAPLAN_MODEL_NAME, None, "name is required"), + ], +) +def test_create_for_modification_with_invalid_parameter_raises_value_error( + qualified_name: str, name: str, message: str +): + with pytest.raises(ValueError, match=message): + AnaplanModel.create_for_modification(qualified_name=qualified_name, name=name) + + +def test_create_for_modification(): + sut = AnaplanModel.create_for_modification( + qualified_name=ANAPLAN_MODEL_QUALIFIED_NAME, name=ANAPLAN_MODEL_NAME + ) + + assert sut.qualified_name == ANAPLAN_MODEL_QUALIFIED_NAME + assert sut.name == ANAPLAN_MODEL_NAME + + +def test_trim_to_required(): + sut = AnaplanModel.create_for_modification( + name=ANAPLAN_MODEL_NAME, qualified_name=ANAPLAN_MODEL_QUALIFIED_NAME + ).trim_to_required() + + assert sut.name == ANAPLAN_MODEL_NAME + assert sut.qualified_name == ANAPLAN_MODEL_QUALIFIED_NAME diff --git a/tests/unit/model/anaplan_module_test.py b/tests/unit/model/anaplan_module_test.py new file mode 100644 index 000000000..c1bb5d8fd --- /dev/null +++ b/tests/unit/model/anaplan_module_test.py @@ -0,0 +1,70 @@ +import pytest + +from pyatlan.model.assets import AnaplanModule +from tests.unit.model.constants import ( + ANAPLAN_CONNECTION_QUALIFIED_NAME, + ANAPLAN_CONNECTOR_TYPE, + ANAPLAN_MODEL_QUALIFIED_NAME, + ANAPLAN_MODULE_NAME, + ANAPLAN_MODULE_QUALIFIED_NAME, +) + + +@pytest.mark.parametrize( + "name, connection_qualified_name, message", + [ + (None, "connection/name", "name is required"), + (ANAPLAN_MODULE_NAME, None, "connection_qualified_name is required"), + ], +) +def test_create_with_missing_parameters_raise_value_error( + name: str, connection_qualified_name: str, message: str +): + with pytest.raises(ValueError, match=message): + AnaplanModule.create( + name=name, connection_qualified_name=connection_qualified_name + ) + + +def test_create(): + sut = AnaplanModule.creator( + name=ANAPLAN_MODULE_NAME, + model_qualified_name=ANAPLAN_MODEL_QUALIFIED_NAME, + ) + + assert sut.name == ANAPLAN_MODULE_NAME + assert sut.connection_qualified_name == ANAPLAN_CONNECTION_QUALIFIED_NAME + assert sut.qualified_name == ANAPLAN_MODULE_QUALIFIED_NAME + assert sut.connector_name == ANAPLAN_CONNECTOR_TYPE + + +@pytest.mark.parametrize( + "qualified_name, name, message", + [ + (None, ANAPLAN_MODEL_QUALIFIED_NAME, "qualified_name is required"), + (ANAPLAN_MODULE_NAME, None, "name is required"), + ], +) +def test_create_for_modification_with_invalid_parameter_raises_value_error( + qualified_name: str, name: str, message: str +): + with pytest.raises(ValueError, match=message): + AnaplanModule.create_for_modification(qualified_name=qualified_name, name=name) + + +def test_create_for_modification(): + sut = AnaplanModule.create_for_modification( + qualified_name=ANAPLAN_MODULE_QUALIFIED_NAME, name=ANAPLAN_MODULE_NAME + ) + + assert sut.qualified_name == ANAPLAN_MODULE_QUALIFIED_NAME + assert sut.name == ANAPLAN_MODULE_NAME + + +def test_trim_to_required(): + sut = AnaplanModule.create_for_modification( + name=ANAPLAN_MODULE_NAME, qualified_name=ANAPLAN_MODULE_QUALIFIED_NAME + ).trim_to_required() + + assert sut.name == ANAPLAN_MODULE_NAME + assert sut.qualified_name == ANAPLAN_MODULE_QUALIFIED_NAME diff --git a/tests/unit/model/anaplan_page_test.py b/tests/unit/model/anaplan_page_test.py new file mode 100644 index 000000000..359369fca --- /dev/null +++ b/tests/unit/model/anaplan_page_test.py @@ -0,0 +1,70 @@ +import pytest + +from pyatlan.model.assets import AnaplanPage +from tests.unit.model.constants import ( + ANAPLAN_APP_QUALIFIED_NAME, + ANAPLAN_CONNECTION_QUALIFIED_NAME, + ANAPLAN_CONNECTOR_TYPE, + ANAPLAN_PAGE_NAME, + ANAPLAN_PAGE_QUALIFIED_NAME, +) + + +@pytest.mark.parametrize( + "name, connection_qualified_name, message", + [ + (None, "connection/name", "name is required"), + (ANAPLAN_PAGE_NAME, None, "connection_qualified_name is required"), + ], +) +def test_create_with_missing_parameters_raise_value_error( + name: str, connection_qualified_name: str, message: str +): + with pytest.raises(ValueError, match=message): + AnaplanPage.create( + name=name, connection_qualified_name=connection_qualified_name + ) + + +def test_create(): + sut = AnaplanPage.creator( + name=ANAPLAN_PAGE_NAME, + app_qualified_name=ANAPLAN_APP_QUALIFIED_NAME, + ) + + assert sut.name == ANAPLAN_PAGE_NAME + assert sut.connection_qualified_name == ANAPLAN_CONNECTION_QUALIFIED_NAME + assert sut.qualified_name == ANAPLAN_PAGE_QUALIFIED_NAME + assert sut.connector_name == ANAPLAN_CONNECTOR_TYPE + + +@pytest.mark.parametrize( + "qualified_name, name, message", + [ + (None, ANAPLAN_APP_QUALIFIED_NAME, "qualified_name is required"), + (ANAPLAN_PAGE_NAME, None, "name is required"), + ], +) +def test_create_for_modification_with_invalid_parameter_raises_value_error( + qualified_name: str, name: str, message: str +): + with pytest.raises(ValueError, match=message): + AnaplanPage.create_for_modification(qualified_name=qualified_name, name=name) + + +def test_create_for_modification(): + sut = AnaplanPage.create_for_modification( + qualified_name=ANAPLAN_PAGE_QUALIFIED_NAME, name=ANAPLAN_PAGE_NAME + ) + + assert sut.qualified_name == ANAPLAN_PAGE_QUALIFIED_NAME + assert sut.name == ANAPLAN_PAGE_NAME + + +def test_trim_to_required(): + sut = AnaplanPage.create_for_modification( + name=ANAPLAN_PAGE_NAME, qualified_name=ANAPLAN_PAGE_QUALIFIED_NAME + ).trim_to_required() + + assert sut.name == ANAPLAN_PAGE_NAME + assert sut.qualified_name == ANAPLAN_PAGE_QUALIFIED_NAME diff --git a/tests/unit/model/anaplan_view_test.py b/tests/unit/model/anaplan_view_test.py new file mode 100644 index 000000000..25a843118 --- /dev/null +++ b/tests/unit/model/anaplan_view_test.py @@ -0,0 +1,70 @@ +import pytest + +from pyatlan.model.assets import AnaplanView +from tests.unit.model.constants import ( + ANAPLAN_CONNECTION_QUALIFIED_NAME, + ANAPLAN_CONNECTOR_TYPE, + ANAPLAN_MODULE_QUALIFIED_NAME, + ANAPLAN_VIEW_NAME, + ANAPLAN_VIEW_QUALIFIED_NAME, +) + + +@pytest.mark.parametrize( + "name, connection_qualified_name, message", + [ + (None, "connection/name", "name is required"), + (ANAPLAN_VIEW_NAME, None, "connection_qualified_name is required"), + ], +) +def test_create_with_missing_parameters_raise_value_error( + name: str, connection_qualified_name: str, message: str +): + with pytest.raises(ValueError, match=message): + AnaplanView.create( + name=name, connection_qualified_name=connection_qualified_name + ) + + +def test_create(): + sut = AnaplanView.creator( + name=ANAPLAN_VIEW_NAME, + module_qualified_name=ANAPLAN_MODULE_QUALIFIED_NAME, + ) + + assert sut.name == ANAPLAN_VIEW_NAME + assert sut.connection_qualified_name == ANAPLAN_CONNECTION_QUALIFIED_NAME + assert sut.qualified_name == ANAPLAN_VIEW_QUALIFIED_NAME + assert sut.connector_name == ANAPLAN_CONNECTOR_TYPE + + +@pytest.mark.parametrize( + "qualified_name, name, message", + [ + (None, ANAPLAN_MODULE_QUALIFIED_NAME, "qualified_name is required"), + (ANAPLAN_VIEW_NAME, None, "name is required"), + ], +) +def test_create_for_modification_with_invalid_parameter_raises_value_error( + qualified_name: str, name: str, message: str +): + with pytest.raises(ValueError, match=message): + AnaplanView.create_for_modification(qualified_name=qualified_name, name=name) + + +def test_create_for_modification(): + sut = AnaplanView.create_for_modification( + qualified_name=ANAPLAN_VIEW_QUALIFIED_NAME, name=ANAPLAN_VIEW_NAME + ) + + assert sut.qualified_name == ANAPLAN_VIEW_QUALIFIED_NAME + assert sut.name == ANAPLAN_VIEW_NAME + + +def test_trim_to_required(): + sut = AnaplanView.create_for_modification( + name=ANAPLAN_VIEW_NAME, qualified_name=ANAPLAN_VIEW_QUALIFIED_NAME + ).trim_to_required() + + assert sut.name == ANAPLAN_VIEW_NAME + assert sut.qualified_name == ANAPLAN_VIEW_QUALIFIED_NAME diff --git a/tests/unit/model/anaplan_workspace_test.py b/tests/unit/model/anaplan_workspace_test.py new file mode 100644 index 000000000..9d32de21f --- /dev/null +++ b/tests/unit/model/anaplan_workspace_test.py @@ -0,0 +1,71 @@ +import pytest + +from pyatlan.model.assets import AnaplanWorkspace +from tests.unit.model.constants import ( + ANAPLAN_CONNECTION_QUALIFIED_NAME, + ANAPLAN_CONNECTOR_TYPE, + ANAPLAN_WORKSPACE_NAME, + ANAPLAN_WORKSPACE_QUALIFIED_NAME, +) + + +@pytest.mark.parametrize( + "name, connection_qualified_name, message", + [ + (None, "connection/name", "name is required"), + (ANAPLAN_WORKSPACE_NAME, None, "connection_qualified_name is required"), + ], +) +def test_create_with_missing_parameters_raise_value_error( + name: str, connection_qualified_name: str, message: str +): + with pytest.raises(ValueError, match=message): + AnaplanWorkspace.create( + name=name, connection_qualified_name=connection_qualified_name + ) + + +def test_create(): + sut = AnaplanWorkspace.creator( + name=ANAPLAN_WORKSPACE_NAME, + connection_qualified_name=ANAPLAN_CONNECTION_QUALIFIED_NAME, + ) + + assert sut.name == ANAPLAN_WORKSPACE_NAME + assert sut.connection_qualified_name == ANAPLAN_CONNECTION_QUALIFIED_NAME + assert sut.qualified_name == ANAPLAN_WORKSPACE_QUALIFIED_NAME + assert sut.connector_name == ANAPLAN_CONNECTOR_TYPE + + +@pytest.mark.parametrize( + "qualified_name, name, message", + [ + (None, ANAPLAN_CONNECTION_QUALIFIED_NAME, "qualified_name is required"), + (ANAPLAN_WORKSPACE_NAME, None, "name is required"), + ], +) +def test_create_for_modification_with_invalid_parameter_raises_value_error( + qualified_name: str, name: str, message: str +): + with pytest.raises(ValueError, match=message): + AnaplanWorkspace.create_for_modification( + qualified_name=qualified_name, name=name + ) + + +def test_create_for_modification(): + sut = AnaplanWorkspace.create_for_modification( + qualified_name=ANAPLAN_WORKSPACE_QUALIFIED_NAME, name=ANAPLAN_WORKSPACE_NAME + ) + + assert sut.qualified_name == ANAPLAN_WORKSPACE_QUALIFIED_NAME + assert sut.name == ANAPLAN_WORKSPACE_NAME + + +def test_trim_to_required(): + sut = AnaplanWorkspace.create_for_modification( + name=ANAPLAN_WORKSPACE_NAME, qualified_name=ANAPLAN_WORKSPACE_QUALIFIED_NAME + ).trim_to_required() + + assert sut.name == ANAPLAN_WORKSPACE_NAME + assert sut.qualified_name == ANAPLAN_WORKSPACE_QUALIFIED_NAME diff --git a/tests/unit/model/constants.py b/tests/unit/model/constants.py index f2c9cdad7..93fed9ae2 100644 --- a/tests/unit/model/constants.py +++ b/tests/unit/model/constants.py @@ -44,6 +44,34 @@ ADLS_CONTAINER_QUALIFIED_NAME = f"{ADLS_QUALIFIED_NAME}/{ADLS_CONTAINER_NAME}" # "default/adls/123456789/myaccount/mycontainer/myobject.csv" ADLS_OBJECT_QUALIFIED_NAME = f"{ADLS_CONTAINER_QUALIFIED_NAME}/{ADLS_OBJECT_NAME}" +ANAPLAN_CONNECTION_QUALIFIED_NAME = "default/anaplan/123456789" +ANAPLAN_CONNECTOR_TYPE = "anaplan" +ANAPLAN_WORKSPACE_NAME = "anaplan-workspace" +ANAPLAN_WORKSPACE_QUALIFIED_NAME = ( + f"{ANAPLAN_CONNECTION_QUALIFIED_NAME}/{ANAPLAN_WORKSPACE_NAME}" +) +ANAPLAN_APP_NAME = "anaplan-app" +ANAPLAN_APP_QUALIFIED_NAME = f"{ANAPLAN_CONNECTION_QUALIFIED_NAME}/{ANAPLAN_APP_NAME}" +ANAPLAN_PAGE_NAME = "anaplan-page" +ANAPLAN_PAGE_QUALIFIED_NAME = f"{ANAPLAN_APP_QUALIFIED_NAME}/{ANAPLAN_PAGE_NAME}" +ANAPLAN_MODEL_NAME = "anaplan-model" +ANAPLAN_MODEL_QUALIFIED_NAME = ( + f"{ANAPLAN_WORKSPACE_QUALIFIED_NAME}/{ANAPLAN_MODEL_NAME}" +) +ANAPLAN_MODULE_NAME = "anaplan-module" +ANAPLAN_MODULE_QUALIFIED_NAME = f"{ANAPLAN_MODEL_QUALIFIED_NAME}/{ANAPLAN_MODULE_NAME}" +ANAPLAN_LIST_NAME = "anaplan-list" +ANAPLAN_LIST_QUALIFIED_NAME = f"{ANAPLAN_MODEL_QUALIFIED_NAME}/{ANAPLAN_LIST_NAME}" +ANAPLAN_DIMENSION_NAME = "anaplan-list" +ANAPLAN_DIMENSION_QUALIFIED_NAME = ( + f"{ANAPLAN_MODEL_QUALIFIED_NAME}/{ANAPLAN_DIMENSION_NAME}" +) +ANAPLAN_LINE_ITEM_NAME = "anaplan-lineitem" +ANAPLAN_LINE_ITEM_QUALIFIED_NAME = ( + f"{ANAPLAN_MODULE_QUALIFIED_NAME}/{ANAPLAN_LINE_ITEM_NAME}" +) +ANAPLAN_VIEW_NAME = "anaplan-view" +ANAPLAN_VIEW_QUALIFIED_NAME = f"{ANAPLAN_MODULE_QUALIFIED_NAME}/{ANAPLAN_VIEW_NAME}" API_SPEC_NAME = "api-spec" API_PATH_NAME = "/api/path" API_OBJECT_NAME = "api-object" diff --git a/tests/unit/test_model.py b/tests/unit/test_model.py index b523dc0f1..c296d29bb 100644 --- a/tests/unit/test_model.py +++ b/tests/unit/test_model.py @@ -22,6 +22,15 @@ ADLSObject, AirflowDag, AirflowTask, + AnaplanApp, + AnaplanDimension, + AnaplanLineItem, + AnaplanList, + AnaplanModel, + AnaplanModule, + AnaplanPage, + AnaplanView, + AnaplanWorkspace, APIField, APIObject, APIPath, @@ -321,6 +330,15 @@ "Optional[ADLSAccount]": ADLSAccount(), "Optional[List[ADLSObject]]": [ADLSObject()], "Optional[ADLSContainer]": ADLSContainer(), + "Optional[AnaplanWorkspace]": AnaplanWorkspace(), + "Optional[List[AnaplanApp]]": [AnaplanApp()], + "Optional[List[AnaplanPage]]": [AnaplanPage()], + "Optional[List[AnaplanModel]]": [AnaplanModel()], + "Optional[List[AnaplanModule]]": [AnaplanModule()], + "Optional[List[AnaplanLineItem]]": [AnaplanLineItem()], + "Optional[List[AnaplanView]]": [AnaplanView()], + "Optional[List[AnaplanList]]": [AnaplanList()], + "Optional[List[AnaplanDimension]]": [AnaplanDimension()], "Optional[List[S3Object]]": [S3Object()], "Optional[S3Bucket]": S3Bucket(), "Optional[List[Asset]]": [Asset()],