msfabricpysdkcore 0.2.7__py3-none-any.whl → 0.2.8__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. msfabricpysdkcore/coreapi.py +6 -6
  2. msfabricpysdkcore/tests/__init__.py +0 -0
  3. msfabricpysdkcore/tests/test_admin_apis.py +174 -0
  4. msfabricpysdkcore/tests/test_admin_tags.py +46 -0
  5. msfabricpysdkcore/tests/test_apache_airflow_job.py +60 -0
  6. msfabricpysdkcore/tests/test_connection.py +111 -0
  7. msfabricpysdkcore/tests/test_copy_jobs.py +60 -0
  8. msfabricpysdkcore/tests/test_dataflows.py +60 -0
  9. msfabricpysdkcore/tests/test_datapipelines.py +60 -0
  10. msfabricpysdkcore/tests/test_deployment_pipelinev2.py +135 -0
  11. msfabricpysdkcore/tests/test_digital_twin_builder.py +60 -0
  12. msfabricpysdkcore/tests/test_domains.py +119 -0
  13. msfabricpysdkcore/tests/test_environments.py +121 -0
  14. msfabricpysdkcore/tests/test_evenstreams.py +57 -0
  15. msfabricpysdkcore/tests/test_eventhouses.py +63 -0
  16. msfabricpysdkcore/tests/test_eventstream_topology.py +82 -0
  17. msfabricpysdkcore/tests/test_external_data_shares.py +51 -0
  18. msfabricpysdkcore/tests/test_fabric_azure_client.py +80 -0
  19. msfabricpysdkcore/tests/test_folders.py +56 -0
  20. msfabricpysdkcore/tests/test_gateways.py +99 -0
  21. msfabricpysdkcore/tests/test_git.py +66 -0
  22. msfabricpysdkcore/tests/test_graphqlapi.py +44 -0
  23. msfabricpysdkcore/tests/test_items.py +97 -0
  24. msfabricpysdkcore/tests/test_jobs.py +98 -0
  25. msfabricpysdkcore/tests/test_kql_dashboards.py +63 -0
  26. msfabricpysdkcore/tests/test_kql_queryset.py +60 -0
  27. msfabricpysdkcore/tests/test_kqldatabases.py +56 -0
  28. msfabricpysdkcore/tests/test_lakehouse.py +89 -0
  29. msfabricpysdkcore/tests/test_managed_private_endpoints.py +62 -0
  30. msfabricpysdkcore/tests/test_mirrored_azuredatabricks_catalog.py +81 -0
  31. msfabricpysdkcore/tests/test_mirroreddatabases.py +80 -0
  32. msfabricpysdkcore/tests/test_ml_experiments.py +45 -0
  33. msfabricpysdkcore/tests/test_ml_models.py +46 -0
  34. msfabricpysdkcore/tests/test_mounted_adf.py +64 -0
  35. msfabricpysdkcore/tests/test_notebooks.py +58 -0
  36. msfabricpysdkcore/tests/test_one_lake_data_access_security.py +63 -0
  37. msfabricpysdkcore/tests/test_other_items.py +45 -0
  38. msfabricpysdkcore/tests/test_reflex.py +56 -0
  39. msfabricpysdkcore/tests/test_reports.py +56 -0
  40. msfabricpysdkcore/tests/test_semantic_model.py +56 -0
  41. msfabricpysdkcore/tests/test_shortcuts.py +59 -0
  42. msfabricpysdkcore/tests/test_spark.py +91 -0
  43. msfabricpysdkcore/tests/test_sparkjobdefinition.py +55 -0
  44. msfabricpysdkcore/tests/test_sql_endpoint.py +28 -0
  45. msfabricpysdkcore/tests/test_sqldatabases.py +45 -0
  46. msfabricpysdkcore/tests/test_tags.py +28 -0
  47. msfabricpysdkcore/tests/test_variable_libary.py +61 -0
  48. msfabricpysdkcore/tests/test_warehouses.py +50 -0
  49. msfabricpysdkcore/tests/test_workspaces_capacities.py +159 -0
  50. msfabricpysdkcore/workspace.py +22 -4
  51. {msfabricpysdkcore-0.2.7.dist-info → msfabricpysdkcore-0.2.8.dist-info}/METADATA +1 -1
  52. msfabricpysdkcore-0.2.8.dist-info/RECORD +78 -0
  53. msfabricpysdkcore-0.2.7.dist-info/RECORD +0 -30
  54. {msfabricpysdkcore-0.2.7.dist-info → msfabricpysdkcore-0.2.8.dist-info}/WHEEL +0 -0
  55. {msfabricpysdkcore-0.2.7.dist-info → msfabricpysdkcore-0.2.8.dist-info}/licenses/LICENSE +0 -0
  56. {msfabricpysdkcore-0.2.7.dist-info → msfabricpysdkcore-0.2.8.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,135 @@
1
+ import unittest
2
+ from msfabricpysdkcore.coreapi import FabricClientCore
3
+ from datetime import datetime
4
+ from dotenv import load_dotenv
5
+ import time
6
+
7
+ load_dotenv()
8
+
9
+ class TestFabricClientCore(unittest.TestCase):
10
+
11
+ def __init__(self, *args, **kwargs):
12
+ super(TestFabricClientCore, self).__init__(*args, **kwargs)
13
+ #load_dotenv()
14
+ self.fc = FabricClientCore()
15
+
16
+ def test_deployment_pipeline2(self):
17
+ fcc = self.fc
18
+ workspace_id = "72d9d955-bd1e-42c7-9746-208f7cbc8956"
19
+
20
+ user_id = "e0505016-ef55-4ca7-b106-e085cc201823"
21
+ capacity_id = "9e7e757d-d567-4fb3-bc4f-d230aabf2a00"
22
+
23
+ prod_workspace = fcc.create_workspace("sdkswedenproddeploy")
24
+ prod_workspace.assign_to_capacity(capacity_id)
25
+
26
+ stages = [
27
+ {
28
+ "displayName": "Development",
29
+ "description": "Development stage description",
30
+ "isPublic": False
31
+ },
32
+ {
33
+ "displayName": "Production",
34
+ "description": "Production stage description",
35
+ "isPublic":True
36
+ }
37
+ ]
38
+
39
+ pipes = fcc.list_deployment_pipelines(with_details=False)
40
+ for pipe in pipes:
41
+ if "sdk" in pipe["displayName"]:
42
+ fcc.delete_deployment_pipeline(deployment_pipeline_id=pipe["id"])
43
+
44
+ pipe =fcc.create_deployment_pipeline(display_name="sdktestpipeline",
45
+ description="Test Deployment Pipeline Description",
46
+ stages=stages)
47
+
48
+ self.assertIsNotNone(pipe.id)
49
+ pipe_id = pipe.id
50
+
51
+ for stage in pipe.stages:
52
+ if stage["displayName"] == "Development":
53
+ dev_stage = stage
54
+ else:
55
+ prod_stage = stage
56
+
57
+ stage = fcc.get_deployment_pipeline_stage(deployment_pipeline_id=pipe_id,
58
+ stage_id=dev_stage["id"])
59
+ self.assertIsNotNone(stage.id)
60
+ resp = fcc.assign_workspace_to_stage(deployment_pipeline_id=pipe_id,
61
+ stage_id=dev_stage["id"],
62
+ workspace_id=workspace_id)
63
+ self.assertEqual(resp, 200)
64
+
65
+ resp = fcc.assign_workspace_to_stage(deployment_pipeline_id=pipe_id,
66
+ stage_id=prod_stage["id"],
67
+ workspace_id=prod_workspace.id)
68
+ self.assertEqual(resp, 200)
69
+ principal = {
70
+ "id": user_id,
71
+ "type": "User"
72
+ }
73
+
74
+ resp = fcc.add_deployment_pipeline_role_assignment(deployment_pipeline_id=pipe_id,principal=principal, role="Admin")
75
+ self.assertEqual(resp, 200)
76
+
77
+ roles = fcc.list_deployment_pipeline_role_assignments(deployment_pipeline_id=pipe_id)
78
+ self.assertTrue(len(roles) == 2)
79
+
80
+ resp = fcc.delete_deployment_pipeline_role_assignment(deployment_pipeline_id=pipe_id, principal_id=user_id)
81
+ self.assertEqual(resp, 200)
82
+
83
+ roles = fcc.list_deployment_pipeline_role_assignments(deployment_pipeline_id=pipe_id)
84
+ self.assertTrue(len(roles) == 1)
85
+
86
+ pipes = fcc.list_deployment_pipelines(with_details=False)
87
+ sdk_pipes = [pipe for pipe in pipes if "sdk" in pipe["displayName"]]
88
+ self.assertTrue(len(sdk_pipes) > 0)
89
+
90
+ resp = fcc.deploy_stage_content(deployment_pipeline_id=pipe_id,
91
+ source_stage_id=dev_stage["id"],
92
+ target_stage_id=prod_stage["id"], wait_for_completion=False)
93
+ self.assertEqual(resp.status_code, 202)
94
+
95
+ ops = fcc.list_deployment_pipeline_operations(deployment_pipeline_id=pipe_id)
96
+ self.assertTrue(len(ops) > 0)
97
+
98
+ ops = fcc.get_deployment_pipeline_operation(deployment_pipeline_id=pipe_id, operation_id=ops[0]["id"])
99
+ self.assertIsNotNone(ops["id"])
100
+
101
+ stages = fcc.list_deployment_pipeline_stages(deployment_pipeline_id=pipe_id)
102
+ self.assertTrue(len(stages) == 2)
103
+
104
+ items = fcc.list_deployment_pipeline_stage_items(deployment_pipeline_id=pipe_id, stage_id=dev_stage["id"])
105
+ self.assertTrue(len(items) == 1)
106
+
107
+ updated_pipe = fcc.update_deployment_pipeline(deployment_pipeline_id=pipe.id, display_name="sdknewname", description="newdescription")
108
+ self.assertIsNotNone(updated_pipe.id)
109
+
110
+ pipe = fcc.get_deployment_pipeline(pipe_id)
111
+ self.assertIsNotNone(pipe.id)
112
+ self.assertTrue(pipe.display_name == "sdknewname")
113
+
114
+ updated_stage = fcc.update_deployment_pipeline_stage(deployment_pipeline_id=pipe_id, stage_id=prod_stage["id"],
115
+ display_name="newname", description="newdescription")
116
+ self.assertIsNotNone(updated_stage["id"])
117
+
118
+ stage = fcc.get_deployment_pipeline_stage(deployment_pipeline_id=pipe_id, stage_id=prod_stage["id"])
119
+ self.assertIsNotNone(stage.id)
120
+ self.assertTrue(stage.display_name == "newname")
121
+
122
+ for _ in range(10):
123
+ ops = fcc.get_deployment_pipeline_operation(deployment_pipeline_id=pipe_id, operation_id=ops["id"])
124
+ if ops["status"] != "Running":
125
+ break
126
+ else:
127
+ time.sleep(5)
128
+
129
+ resp = fcc.unassign_workspace_from_stage(deployment_pipeline_id=pipe_id,stage_id=prod_stage["id"])
130
+ self.assertEqual(resp, 200)
131
+
132
+ prod_workspace.delete()
133
+
134
+ resp = fcc.delete_deployment_pipeline(deployment_pipeline_id=pipe_id)
135
+ self.assertEqual(resp, 200)
@@ -0,0 +1,60 @@
1
+ import unittest
2
+ from dotenv import load_dotenv
3
+ from msfabricpysdkcore import FabricClientCore
4
+ from datetime import datetime
5
+ load_dotenv()
6
+
7
+ class TestFabricClientCore(unittest.TestCase):
8
+
9
+ def __init__(self, *args, **kwargs):
10
+ super(TestFabricClientCore, self).__init__(*args, **kwargs)
11
+ self.fcc = FabricClientCore()
12
+
13
+ def test_digital_twin_builder(self):
14
+ fcc = self.fcc
15
+
16
+ workspace_id = "05bc5baa-ef02-4a31-ab20-158a478151d3"
17
+ item_id = "d7260274-8038-44ec-b096-dec1723931d1"
18
+
19
+ digital_twin_builder = fcc.list_digital_twin_builders(workspace_id=workspace_id)
20
+ for digital_twin_builder in digital_twin_builder:
21
+ if digital_twin_builder.id != item_id:
22
+ resp = fcc.delete_digital_twin_builder(workspace_id=workspace_id, digital_twin_builder_id=digital_twin_builder.id)
23
+ self.assertEqual(resp, 200)
24
+
25
+ digital_twin_builder_definition = fcc.get_digital_twin_builder_definition(workspace_id=workspace_id, digital_twin_builder_id=item_id)
26
+ self.assertIn("definition", digital_twin_builder_definition)
27
+ definition = digital_twin_builder_definition["definition"]
28
+
29
+ date_str = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
30
+ date_str = date_str.replace(" ", "T").replace(":", "").replace("-", "")
31
+ date_str = f"copyjob{date_str}"
32
+
33
+ digital_twin_builder_new = fcc.create_digital_twin_builder(workspace_id=workspace_id, display_name=date_str, definition=definition)
34
+
35
+ self.assertEqual(digital_twin_builder_new.display_name, date_str)
36
+
37
+ digital_twin_builder_get = fcc.get_digital_twin_builder(workspace_id=workspace_id, digital_twin_builder_id=digital_twin_builder_new.id)
38
+ self.assertEqual(digital_twin_builder_get.display_name, date_str)
39
+
40
+ digital_twin_builder = fcc.list_digital_twin_builders(workspace_id=workspace_id)
41
+ self.assertEqual(len(digital_twin_builder), 2)
42
+
43
+ date_str_updated = date_str + "_updated"
44
+ digital_twin_builder_updated = fcc.update_digital_twin_builder(workspace_id=workspace_id, digital_twin_builder_id=digital_twin_builder_new.id, display_name=date_str_updated, return_item=True)
45
+ self.assertEqual(digital_twin_builder_updated.display_name, date_str_updated)
46
+
47
+ digital_twin_builder_updated = fcc.update_digital_twin_builder_definition(workspace_id=workspace_id, digital_twin_builder_id=digital_twin_builder_new.id, definition=definition)
48
+ self.assertIn(digital_twin_builder_updated.status_code, [200,202])
49
+
50
+ for digital_twin_builder in digital_twin_builder:
51
+ if digital_twin_builder.id != item_id:
52
+ resp = fcc.delete_digital_twin_builder(workspace_id=workspace_id, digital_twin_builder_id=digital_twin_builder.id)
53
+ self.assertEqual(resp, 200)
54
+
55
+
56
+
57
+
58
+
59
+
60
+
@@ -0,0 +1,119 @@
1
+ import unittest
2
+ from dotenv import load_dotenv
3
+ from datetime import datetime
4
+ from msfabricpysdkcore import FabricClientCore, FabricClientAdmin
5
+
6
+
7
+ load_dotenv()
8
+
9
+ class TestFabricClientCore(unittest.TestCase):
10
+
11
+ def __init__(self, *args, **kwargs):
12
+ super(TestFabricClientCore, self).__init__(*args, **kwargs)
13
+
14
+
15
+ def test_domains(self):
16
+ fcc = FabricClientCore()
17
+ fca = FabricClientAdmin()
18
+
19
+ ws = fcc.get_workspace_by_name("sdkswedencentral")
20
+ cap = fcc.get_capacity(capacity_id=ws.capacity_id)
21
+ principal = {'id': '1dc64c6e-7a10-4ea9-8488-85d0739a377d', 'type': 'User'}
22
+
23
+ # Delete if exists
24
+ for dom in fca.list_domains():
25
+ if "sdktestdomain" in dom.display_name:
26
+ dom.delete()
27
+
28
+ # Create domain
29
+ domain_name = "sdktestdomains" + datetime.now().strftime("%Y%m%d%H%M%S")
30
+ domain = fca.create_domain(display_name=domain_name)
31
+ self.assertIsNotNone(domain.id)
32
+ self.assertEqual(domain.display_name, domain_name)
33
+
34
+ # Get domain by name
35
+ domain_clone = fca.get_domain_by_name(domain_name)
36
+ self.assertIsNotNone(domain_clone.id)
37
+ self.assertEqual(domain_clone.display_name, domain_name)
38
+
39
+ # Get domain by id
40
+ domain_clone = fca.get_domain_by_id(domain.id)
41
+ self.assertIsNotNone(domain_clone.id)
42
+ self.assertEqual(domain_clone.display_name, domain_name)
43
+
44
+ # List domains
45
+ domains = fca.list_domains()
46
+ self.assertGreater(len(domains), 0)
47
+ domains_ids = [d.id for d in domains]
48
+ self.assertIn(domain.id, domains_ids)
49
+
50
+ # Update domain
51
+ domain_new_name = f"{domain_name}2"
52
+ domain_clone = fca.update_domain(domain.id, display_name=domain_new_name, return_item=True)
53
+ self.assertEqual(domain_clone.display_name, domain_new_name)
54
+
55
+ # Assign domain workspaces by Ids
56
+ status_code = fca.assign_domain_workspaces_by_ids(domain.id, [ws.id])
57
+ self.assertEqual(status_code, 200)
58
+
59
+ # List domain workspaces
60
+ workspaces = fca.list_domain_workspaces(domain.id, workspace_objects=False)
61
+ self.assertGreater(len(workspaces), 0)
62
+ workspaces_ids = [w["id"] for w in workspaces]
63
+ self.assertIn(ws.id, workspaces_ids)
64
+
65
+ # Unassign domain workspaces by ids
66
+ status_code = fca.unassign_domain_workspaces_by_ids(domain.id, [ws.id])
67
+ self.assertEqual(status_code, 200)
68
+
69
+ workspaces = fca.list_domain_workspaces(domain.id)
70
+ self.assertEqual(len(workspaces), 0)
71
+
72
+ # Assign domain workspaces by capacities
73
+ status_code = fca.assign_domain_workspaces_by_capacities(domain.id, [cap.id])
74
+ self.assertEqual(status_code, 202)
75
+
76
+ workspaces = fca.list_domain_workspaces(domain.id, workspace_objects=False)
77
+ self.assertGreater(len(workspaces), 0)
78
+ workspaces_ids = [w["id"] for w in workspaces]
79
+ self.assertIn(ws.id, workspaces_ids)
80
+
81
+ # Unassign all domain workspaces
82
+ status_code = fca.unassign_all_domain_workspaces(domain.id)
83
+ self.assertEqual(status_code, 200)
84
+
85
+ workspaces = fca.list_domain_workspaces(domain.id)
86
+ self.assertEqual(len(workspaces), 0)
87
+
88
+ # Assign domain workspaces by principals
89
+ status_code = fca.assign_domains_workspaces_by_principals(domain.id, [principal], wait_for_completion=False)
90
+
91
+ self.assertEqual(status_code, 202)
92
+
93
+ workspaces = fca.list_domain_workspaces(domain.id, workspace_objects=False)
94
+ self.assertGreater(len(workspaces), 0)
95
+ workspaces_ids = [w["id"] for w in workspaces]
96
+ self.assertIn(ws.id, workspaces_ids)
97
+
98
+ # Role assignments bulk assign
99
+
100
+ principal_2 = {'id': 'e0505016-ef55-4ca7-b106-e085cc201823', 'type': 'User'}
101
+ principals = [principal, principal_2]
102
+
103
+ status_code = fca.role_assignments_bulk_assign(domain.id, "Contributors", principals)
104
+
105
+ self.assertEqual(status_code, 200)
106
+
107
+ # Role assignments bulk unassign
108
+ status_code = fca.role_assignments_bulk_unassign(domain.id, "Contributors", [principal_2])
109
+
110
+ self.assertEqual(status_code, 200)
111
+
112
+ # Delete domain
113
+ status_code = fca.delete_domain(domain.id)
114
+
115
+ self.assertEqual(status_code, 200)
116
+
117
+ domains = fca.list_domains()
118
+ domains_ids = [d.id for d in domains]
119
+ self.assertNotIn(domain.id, domains_ids)
@@ -0,0 +1,121 @@
1
+ import unittest
2
+ from datetime import datetime
3
+ from dotenv import load_dotenv
4
+ from time import sleep
5
+ from msfabricpysdkcore.coreapi import FabricClientCore
6
+
7
+ load_dotenv()
8
+
9
+ class TestFabricClientCore(unittest.TestCase):
10
+
11
+ def __init__(self, *args, **kwargs):
12
+ super(TestFabricClientCore, self).__init__(*args, **kwargs)
13
+ self.fc = FabricClientCore()
14
+
15
+ def test_environments_crudl(self):
16
+ fcc = self.fc
17
+ workspace_id = '05bc5baa-ef02-4a31-ab20-158a478151d3'
18
+ item_id = '35a08bcb-ff8c-40f7-93ea-b86dc1affce5'
19
+
20
+ environments = fcc.list_environments(workspace_id=workspace_id)
21
+ for environment in environments:
22
+ if environment.id != item_id:
23
+ resp = fcc.delete_environment(workspace_id=workspace_id, environment_id=environment.id)
24
+ self.assertEqual(resp, 200)
25
+
26
+
27
+ date_str = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
28
+ date_str = date_str.replace(" ", "T").replace(":", "").replace("-", "")
29
+ date_str = f"environment{date_str}"
30
+
31
+ environment_new = fcc.create_environment(workspace_id=workspace_id, display_name=date_str)
32
+
33
+ self.assertEqual(environment_new.display_name, date_str)
34
+
35
+ environment_get = fcc.get_environment(workspace_id=workspace_id, environment_id=environment_new.id)
36
+ self.assertEqual(environment_get.display_name, date_str)
37
+
38
+ environments = fcc.list_environments(workspace_id=workspace_id)
39
+ self.assertEqual(len(environments), 2)
40
+
41
+ date_str_updated = date_str + "_updated"
42
+ environment_updated = fcc.update_environment(workspace_id=workspace_id, environment_id=environment_new.id, display_name=date_str_updated, return_item=True)
43
+ self.assertEqual(environment_updated.display_name, date_str_updated)
44
+
45
+ for environment in environments:
46
+ if environment.id != item_id:
47
+ resp = fcc.delete_environment(workspace_id=workspace_id, environment_id=environment.id)
48
+ self.assertEqual(resp, 200)
49
+
50
+ def test_environment_details(self):
51
+ fc = FabricClientCore()
52
+ workspace_id = '05bc5baa-ef02-4a31-ab20-158a478151d3'
53
+ environment_id = '35a08bcb-ff8c-40f7-93ea-b86dc1affce5'
54
+
55
+ published_settings = fc.get_published_settings(workspace_id=workspace_id, environment_id=environment_id)
56
+ self.assertIsNotNone(published_settings)
57
+ self.assertIn("instancePool", published_settings)
58
+ self.assertIn("dynamicExecutorAllocation", published_settings)
59
+ staging_settings = fc.get_staging_settings(workspace_id=workspace_id, environment_id=environment_id)
60
+ self.assertIsNotNone(staging_settings)
61
+ self.assertIn("instancePool", staging_settings)
62
+ self.assertIn("dynamicExecutorAllocation", staging_settings)
63
+ if staging_settings["driverCores"] == 8:
64
+ driver_cores = 4
65
+ else:
66
+ driver_cores = 8
67
+ updated_settings = fc.update_staging_settings(workspace_id=workspace_id, environment_id=environment_id, driver_cores=driver_cores)
68
+ self.assertIn("instancePool", updated_settings)
69
+ self.assertIn("dynamicExecutorAllocation", updated_settings)
70
+ self.assertEqual(updated_settings["driverCores"], driver_cores)
71
+ updated_settings = fc.get_staging_settings(workspace_id=workspace_id, environment_id=environment_id)
72
+ self.assertIn("instancePool", updated_settings)
73
+ self.assertIn("dynamicExecutorAllocation", updated_settings)
74
+ self.assertEqual(updated_settings["driverCores"], driver_cores)
75
+
76
+
77
+ def test_environment_spark_libraries(self):
78
+ fc = self.fc
79
+ workspace_id = '05bc5baa-ef02-4a31-ab20-158a478151d3'
80
+ environment_id = '35a08bcb-ff8c-40f7-93ea-b86dc1affce5'
81
+
82
+ resp = fc.get_published_libraries(workspace_id, environment_id)
83
+ self.assertIn('customLibraries', resp)
84
+ self.assertIn('wheelFiles', resp['customLibraries'])
85
+ self.assertIn('msfabricpysdkcore-0.2.6-py3-none-any.whl', resp['customLibraries']['wheelFiles'])
86
+
87
+ resp = fc.upload_staging_library(workspace_id, environment_id, 'dummy.whl')
88
+ self.assertEqual(resp.status_code, 200)
89
+
90
+ resp = fc.get_staging_libraries(workspace_id, environment_id)
91
+
92
+ self.assertIn('customLibraries', resp)
93
+ self.assertIn('wheelFiles', resp['customLibraries'])
94
+ self.assertIn('dummy.whl', resp['customLibraries']['wheelFiles'])
95
+
96
+
97
+ resp = fc.publish_environment(workspace_id, environment_id)
98
+ self.assertIn('publishDetails', resp)
99
+ self.assertIn('state', resp['publishDetails'])
100
+ self.assertEqual(resp['publishDetails']['state'].lower(), 'running')
101
+
102
+
103
+ resp = fc.cancel_publish(workspace_id, environment_id)
104
+ self.assertIn('publishDetails', resp)
105
+ self.assertIn('state', resp['publishDetails'])
106
+ self.assertEqual(resp['publishDetails']['state'].lower(), 'cancelled')
107
+
108
+ resp = fc.delete_staging_library(workspace_id, environment_id, 'dummy.whl')
109
+ self.assertEqual(resp.status_code, 200)
110
+
111
+ resp = fc.get_staging_libraries(workspace_id, environment_id)
112
+
113
+ self.assertIn('customLibraries', resp)
114
+ self.assertIn('wheelFiles', resp['customLibraries'])
115
+ self.assertNotIn('dummy.whl', resp['customLibraries']['wheelFiles'])
116
+
117
+
118
+
119
+
120
+
121
+
@@ -0,0 +1,57 @@
1
+ import unittest
2
+ from datetime import datetime
3
+ from dotenv import load_dotenv
4
+ from time import sleep
5
+ from msfabricpysdkcore.coreapi import FabricClientCore
6
+
7
+ load_dotenv()
8
+
9
+ class TestFabricClientCore(unittest.TestCase):
10
+
11
+ def __init__(self, *args, **kwargs):
12
+ super(TestFabricClientCore, self).__init__(*args, **kwargs)
13
+ #load_dotenv()
14
+ self.fc = FabricClientCore()
15
+
16
+ def test_eventstreams(self):
17
+
18
+ fcc = self.fc
19
+
20
+ workspace_id = "05bc5baa-ef02-4a31-ab20-158a478151d3"
21
+ item_id = "94f4b54b-980b-43f9-8b67-ded8028cf1b9"
22
+
23
+ eventstreams = fcc.list_eventstreams(workspace_id=workspace_id)
24
+ for eventstream in eventstreams:
25
+ if eventstream.id != item_id:
26
+ resp = fcc.delete_eventstream(workspace_id=workspace_id, eventstream_id=eventstream.id)
27
+ self.assertEqual(resp, 200)
28
+
29
+ eventstream_definition = fcc.get_eventstream_definition(workspace_id=workspace_id, eventstream_id=item_id)
30
+ self.assertIn("definition", eventstream_definition)
31
+ definition = eventstream_definition["definition"]
32
+
33
+ date_str = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
34
+ date_str = date_str.replace(" ", "T").replace(":", "").replace("-", "")
35
+ date_str = f"eventstream{date_str}"
36
+
37
+ eventstream_new = fcc.create_eventstream(workspace_id=workspace_id, display_name=date_str, definition=definition)
38
+
39
+ self.assertEqual(eventstream_new.display_name, date_str)
40
+
41
+ eventstream_get = fcc.get_eventstream(workspace_id=workspace_id, eventstream_id=eventstream_new.id)
42
+ self.assertEqual(eventstream_get.display_name, date_str)
43
+
44
+ eventstreams = fcc.list_eventstreams(workspace_id=workspace_id)
45
+ self.assertEqual(len(eventstreams), 2)
46
+
47
+ date_str_updated = date_str + "_updated"
48
+ eventstream_updated = fcc.update_eventstream(workspace_id=workspace_id, eventstream_id=eventstream_new.id, display_name=date_str_updated, return_item=True)
49
+ self.assertEqual(eventstream_updated.display_name, date_str_updated)
50
+
51
+ eventstream_updated = fcc.update_eventstream_definition(workspace_id=workspace_id, eventstream_id=eventstream_new.id, definition=definition)
52
+ self.assertEqual(eventstream_updated.status_code, 200)
53
+
54
+ for eventstream in eventstreams:
55
+ if eventstream.id != item_id:
56
+ resp = fcc.delete_eventstream(workspace_id=workspace_id, eventstream_id=eventstream.id)
57
+ self.assertEqual(resp, 200)
@@ -0,0 +1,63 @@
1
+ import unittest
2
+ from datetime import datetime
3
+ from dotenv import load_dotenv
4
+ from time import sleep
5
+ from msfabricpysdkcore.coreapi import FabricClientCore
6
+
7
+ load_dotenv()
8
+
9
+ class TestFabricClientCore(unittest.TestCase):
10
+
11
+ def __init__(self, *args, **kwargs):
12
+ super(TestFabricClientCore, self).__init__(*args, **kwargs)
13
+ #load_dotenv()
14
+ self.fc = FabricClientCore()
15
+
16
+ datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
17
+ self.item_name = "testitem" + datetime_str
18
+ self.item_type = "Notebook"
19
+
20
+
21
+
22
+ def test_eventhouses(self):
23
+
24
+ fcc = self.fc
25
+
26
+ workspace_id = "05bc5baa-ef02-4a31-ab20-158a478151d3"
27
+ item_id = "5d544ac1-c58d-4d3a-a032-f57dc4b5c2a7"
28
+
29
+ eventhouses = fcc.list_eventhouses(workspace_id=workspace_id)
30
+ for eventhouse in eventhouses:
31
+ if eventhouse.id != item_id:
32
+ resp = fcc.delete_eventhouse(workspace_id=workspace_id, eventhouse_id=eventhouse.id)
33
+ self.assertEqual(resp, 200)
34
+
35
+ eventhouse_definition = fcc.get_eventhouse_definition(workspace_id=workspace_id, eventhouse_id=item_id)
36
+ self.assertIn("definition", eventhouse_definition)
37
+ definition = eventhouse_definition["definition"]
38
+
39
+ date_str = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
40
+ date_str = date_str.replace(" ", "T").replace(":", "").replace("-", "")
41
+ date_str = f"eventhouse{date_str}"
42
+
43
+ eventhouse_new = fcc.create_eventhouse(workspace_id=workspace_id, display_name=date_str, definition=definition)
44
+
45
+ self.assertEqual(eventhouse_new.display_name, date_str)
46
+
47
+ eventhouse_get = fcc.get_eventhouse(workspace_id=workspace_id, eventhouse_id=eventhouse_new.id)
48
+ self.assertEqual(eventhouse_get.display_name, date_str)
49
+
50
+ eventhouses = fcc.list_eventhouses(workspace_id=workspace_id)
51
+ self.assertEqual(len(eventhouses), 2)
52
+
53
+ date_str_updated = date_str + "_updated"
54
+ eventhouse_updated = fcc.update_eventhouse(workspace_id=workspace_id, eventhouse_id=eventhouse_new.id, display_name=date_str_updated, return_item=True)
55
+ self.assertEqual(eventhouse_updated.display_name, date_str_updated)
56
+
57
+ eventhouse_updated = fcc.update_eventhouse_definition(workspace_id=workspace_id, eventhouse_id=eventhouse_new.id, definition=definition)
58
+ self.assertIn(eventhouse_updated.status_code, [200, 202])
59
+
60
+ for eventhouse in eventhouses:
61
+ if eventhouse.id != item_id:
62
+ resp = fcc.delete_eventhouse(workspace_id=workspace_id, eventhouse_id=eventhouse.id)
63
+ self.assertEqual(resp, 200)
@@ -0,0 +1,82 @@
1
+
2
+ # import unittest
3
+ # from dotenv import load_dotenv
4
+ # from msfabricpysdkcore import FabricClientCore
5
+ # from datetime import datetime
6
+ # from time import sleep
7
+ # load_dotenv()
8
+
9
+ # class TestFabricClientCore(unittest.TestCase):
10
+
11
+ # def __init__(self, *args, **kwargs):
12
+ # super(TestFabricClientCore, self).__init__(*args, **kwargs)
13
+
14
+ # def test_eventstream_topology(self):
15
+
16
+ # fcc = FabricClientCore()
17
+
18
+ # workspace_id = "05bc5baa-ef02-4a31-ab20-158a478151d3"
19
+
20
+ # item_id = "94f4b54b-980b-43f9-8b67-ded8028cf1b9"
21
+ # custom_destination_id = "acd90d61-2792-4494-9f17-c822f2fb984d"
22
+ # custom_source_id = "9f382928-7d42-43f9-b02b-1b1352ad3ecd"
23
+ # source_id = "e58db369-e473-40f4-bedd-022b60540b17"
24
+ # destination_id = "2446e6cf-98c9-45cb-a102-78d2ca3eb257"
25
+
26
+
27
+ # topology = fcc.get_eventstream_topology(workspace_id, item_id)
28
+ # self.assertIsNotNone(topology)
29
+ # self.assertIn("sources", topology)
30
+ # self.assertIn("destinations", topology)
31
+
32
+ # destination = fcc.get_eventstream_destination(workspace_id, item_id, destination_id)
33
+ # self.assertIsNotNone(destination)
34
+ # self.assertEqual(destination["id"], destination_id)
35
+
36
+ # destination_conn = fcc.get_eventstream_destination_connection(workspace_id, item_id, custom_destination_id)
37
+ # self.assertIsNotNone(destination_conn)
38
+ # self.assertIn("fullyQualifiedNamespace", destination_conn)
39
+
40
+ # source = fcc.get_eventstream_source(workspace_id, item_id, source_id)
41
+ # self.assertIsNotNone(source)
42
+ # self.assertEqual(source["id"], source_id)
43
+
44
+ # source_conn = fcc.get_eventstream_source_connection(workspace_id, item_id, custom_source_id)
45
+ # self.assertIsNotNone(source_conn)
46
+ # self.assertIn("fullyQualifiedNamespace", source_conn)
47
+
48
+ # resp = fcc.pause_eventstream(workspace_id, item_id)
49
+ # self.assertEqual(resp, 200)
50
+
51
+ # def resume():
52
+ # resp = fcc.resume_eventstream(workspace_id, item_id, start_type="Now")
53
+ # self.assertEqual(resp, 200)
54
+
55
+ # for _ in range(12):
56
+ # try:
57
+ # resume()
58
+ # break
59
+ # except Exception as e:
60
+ # sleep(5)
61
+
62
+ # resp = fcc.pause_eventstream_source(workspace_id, item_id, source_id)
63
+ # self.assertEqual(resp, 200)
64
+
65
+ # resp = fcc.pause_eventstream_destination(workspace_id, item_id, destination_id)
66
+ # self.assertEqual(resp, 200)
67
+
68
+ # resp = fcc.resume_eventstream_source(workspace_id, item_id, source_id, start_type="Now")
69
+ # self.assertEqual(resp, 200)
70
+
71
+ # def resume():
72
+ # resp = fcc.resume_eventstream_destination(workspace_id, item_id, destination_id, start_type="Now")
73
+ # self.assertEqual(resp, 200)
74
+
75
+ # for _ in range(12):
76
+ # try:
77
+ # resume()
78
+ # break
79
+ # except Exception as e:
80
+ # sleep(5)
81
+
82
+