msfabricpysdkcore 0.2.7__tar.gz → 0.2.8__tar.gz

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 (85) hide show
  1. {msfabricpysdkcore-0.2.7 → msfabricpysdkcore-0.2.8}/PKG-INFO +1 -1
  2. {msfabricpysdkcore-0.2.7 → msfabricpysdkcore-0.2.8}/msfabricpysdkcore/coreapi.py +6 -6
  3. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/__init__.py +0 -0
  4. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_admin_apis.py +174 -0
  5. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_admin_tags.py +46 -0
  6. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_apache_airflow_job.py +60 -0
  7. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_connection.py +111 -0
  8. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_copy_jobs.py +60 -0
  9. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_dataflows.py +60 -0
  10. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_datapipelines.py +60 -0
  11. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_deployment_pipelinev2.py +135 -0
  12. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_digital_twin_builder.py +60 -0
  13. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_domains.py +119 -0
  14. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_environments.py +121 -0
  15. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_evenstreams.py +57 -0
  16. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_eventhouses.py +63 -0
  17. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_eventstream_topology.py +82 -0
  18. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_external_data_shares.py +51 -0
  19. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_fabric_azure_client.py +80 -0
  20. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_folders.py +56 -0
  21. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_gateways.py +99 -0
  22. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_git.py +66 -0
  23. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_graphqlapi.py +44 -0
  24. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_items.py +97 -0
  25. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_jobs.py +98 -0
  26. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_kql_dashboards.py +63 -0
  27. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_kql_queryset.py +60 -0
  28. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_kqldatabases.py +56 -0
  29. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_lakehouse.py +89 -0
  30. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_managed_private_endpoints.py +62 -0
  31. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_mirrored_azuredatabricks_catalog.py +81 -0
  32. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_mirroreddatabases.py +80 -0
  33. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_ml_experiments.py +45 -0
  34. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_ml_models.py +46 -0
  35. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_mounted_adf.py +64 -0
  36. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_notebooks.py +58 -0
  37. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_one_lake_data_access_security.py +63 -0
  38. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_other_items.py +45 -0
  39. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_reflex.py +56 -0
  40. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_reports.py +56 -0
  41. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_semantic_model.py +56 -0
  42. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_shortcuts.py +59 -0
  43. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_spark.py +91 -0
  44. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_sparkjobdefinition.py +55 -0
  45. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_sql_endpoint.py +28 -0
  46. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_sqldatabases.py +45 -0
  47. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_tags.py +28 -0
  48. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_variable_libary.py +61 -0
  49. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_warehouses.py +50 -0
  50. msfabricpysdkcore-0.2.8/msfabricpysdkcore/tests/test_workspaces_capacities.py +159 -0
  51. {msfabricpysdkcore-0.2.7 → msfabricpysdkcore-0.2.8}/msfabricpysdkcore/workspace.py +22 -4
  52. {msfabricpysdkcore-0.2.7 → msfabricpysdkcore-0.2.8}/msfabricpysdkcore.egg-info/PKG-INFO +1 -1
  53. msfabricpysdkcore-0.2.8/msfabricpysdkcore.egg-info/SOURCES.txt +82 -0
  54. {msfabricpysdkcore-0.2.7 → msfabricpysdkcore-0.2.8}/pyproject.toml +1 -1
  55. {msfabricpysdkcore-0.2.7 → msfabricpysdkcore-0.2.8}/setup.py +1 -1
  56. msfabricpysdkcore-0.2.7/msfabricpysdkcore.egg-info/SOURCES.txt +0 -34
  57. {msfabricpysdkcore-0.2.7 → msfabricpysdkcore-0.2.8}/LICENSE +0 -0
  58. {msfabricpysdkcore-0.2.7 → msfabricpysdkcore-0.2.8}/README.md +0 -0
  59. {msfabricpysdkcore-0.2.7 → msfabricpysdkcore-0.2.8}/msfabricpysdkcore/__init__.py +0 -0
  60. {msfabricpysdkcore-0.2.7 → msfabricpysdkcore-0.2.8}/msfabricpysdkcore/admin_item.py +0 -0
  61. {msfabricpysdkcore-0.2.7 → msfabricpysdkcore-0.2.8}/msfabricpysdkcore/admin_workspace.py +0 -0
  62. {msfabricpysdkcore-0.2.7 → msfabricpysdkcore-0.2.8}/msfabricpysdkcore/adminapi.py +0 -0
  63. {msfabricpysdkcore-0.2.7 → msfabricpysdkcore-0.2.8}/msfabricpysdkcore/auth.py +0 -0
  64. {msfabricpysdkcore-0.2.7 → msfabricpysdkcore-0.2.8}/msfabricpysdkcore/capacity.py +0 -0
  65. {msfabricpysdkcore-0.2.7 → msfabricpysdkcore-0.2.8}/msfabricpysdkcore/client.py +0 -0
  66. {msfabricpysdkcore-0.2.7 → msfabricpysdkcore-0.2.8}/msfabricpysdkcore/deployment_pipeline.py +0 -0
  67. {msfabricpysdkcore-0.2.7 → msfabricpysdkcore-0.2.8}/msfabricpysdkcore/domain.py +0 -0
  68. {msfabricpysdkcore-0.2.7 → msfabricpysdkcore-0.2.8}/msfabricpysdkcore/environment.py +0 -0
  69. {msfabricpysdkcore-0.2.7 → msfabricpysdkcore-0.2.8}/msfabricpysdkcore/eventstream.py +0 -0
  70. {msfabricpysdkcore-0.2.7 → msfabricpysdkcore-0.2.8}/msfabricpysdkcore/fabric_azure_capacity.py +0 -0
  71. {msfabricpysdkcore-0.2.7 → msfabricpysdkcore-0.2.8}/msfabricpysdkcore/fabric_azure_client.py +0 -0
  72. {msfabricpysdkcore-0.2.7 → msfabricpysdkcore-0.2.8}/msfabricpysdkcore/folder.py +0 -0
  73. {msfabricpysdkcore-0.2.7 → msfabricpysdkcore-0.2.8}/msfabricpysdkcore/item.py +0 -0
  74. {msfabricpysdkcore-0.2.7 → msfabricpysdkcore-0.2.8}/msfabricpysdkcore/job_instance.py +0 -0
  75. {msfabricpysdkcore-0.2.7 → msfabricpysdkcore-0.2.8}/msfabricpysdkcore/lakehouse.py +0 -0
  76. {msfabricpysdkcore-0.2.7 → msfabricpysdkcore-0.2.8}/msfabricpysdkcore/long_running_operation.py +0 -0
  77. {msfabricpysdkcore-0.2.7 → msfabricpysdkcore-0.2.8}/msfabricpysdkcore/onelakeshortcut.py +0 -0
  78. {msfabricpysdkcore-0.2.7 → msfabricpysdkcore-0.2.8}/msfabricpysdkcore/otheritems.py +0 -0
  79. {msfabricpysdkcore-0.2.7 → msfabricpysdkcore-0.2.8}/msfabricpysdkcore/spark_custom_pool.py +0 -0
  80. {msfabricpysdkcore-0.2.7 → msfabricpysdkcore-0.2.8}/msfabricpysdkcore/util/__init__.py +0 -0
  81. {msfabricpysdkcore-0.2.7 → msfabricpysdkcore-0.2.8}/msfabricpysdkcore/util/logger.py +0 -0
  82. {msfabricpysdkcore-0.2.7 → msfabricpysdkcore-0.2.8}/msfabricpysdkcore.egg-info/dependency_links.txt +0 -0
  83. {msfabricpysdkcore-0.2.7 → msfabricpysdkcore-0.2.8}/msfabricpysdkcore.egg-info/requires.txt +0 -0
  84. {msfabricpysdkcore-0.2.7 → msfabricpysdkcore-0.2.8}/msfabricpysdkcore.egg-info/top_level.txt +0 -0
  85. {msfabricpysdkcore-0.2.7 → msfabricpysdkcore-0.2.8}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: msfabricpysdkcore
3
- Version: 0.2.7
3
+ Version: 0.2.8
4
4
  Summary: A Python SDK for Microsoft Fabric
5
5
  Author: Andreas Rederer
6
6
  Project-URL: Homepage, https://github.com/DaSenf1860/ms-fabric-sdk-core
@@ -2267,7 +2267,7 @@ class FabricClientCore(FabricClient):
2267
2267
 
2268
2268
  return response
2269
2269
 
2270
- def get_workspace(self, id = None, name = None):
2270
+ def get_workspace(self, id = None, name = None, return_item=True):
2271
2271
  """Get workspace by id or name
2272
2272
  Args:
2273
2273
  id (str): The ID of the workspace
@@ -2278,12 +2278,12 @@ class FabricClientCore(FabricClient):
2278
2278
  ValueError: If neither id nor name is provided
2279
2279
  """
2280
2280
  if id:
2281
- return self.get_workspace_by_id(id)
2281
+ return self.get_workspace_by_id(id, return_item=return_item)
2282
2282
  if name:
2283
2283
  return self.get_workspace_by_name(name)
2284
2284
  raise ValueError("Either id or name must be provided")
2285
2285
 
2286
- def get_workspace_by_id(self, id):
2286
+ def get_workspace_by_id(self, id, return_item=True):
2287
2287
  """Get workspace by id
2288
2288
  Args:
2289
2289
  id (str): The ID of the workspace
@@ -2296,9 +2296,9 @@ class FabricClientCore(FabricClient):
2296
2296
 
2297
2297
  ws_dict = self.calling_routine(url, operation="GET", response_codes=[200, 404], error_message="Error getting workspace", return_format="json")
2298
2298
 
2299
- ws = Workspace.from_dict(ws_dict, core_client=self)
2300
-
2301
- return ws
2299
+ if return_item:
2300
+ return Workspace.from_dict(ws_dict, core_client=self)
2301
+ return ws_dict
2302
2302
 
2303
2303
  def get_workspace_by_name(self, name):
2304
2304
  """Get workspace by name
@@ -0,0 +1,174 @@
1
+ import unittest
2
+ from dotenv import load_dotenv
3
+ from msfabricpysdkcore import FabricClientAdmin
4
+
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.fca = FabricClientAdmin()
12
+
13
+ def test_admin_api(self):
14
+ fca = self.fca
15
+
16
+ user_id = '1dc64c6e-7a10-4ea9-8488-85d0739a377d'
17
+
18
+ # List workspaces
19
+ ws = fca.list_workspaces(name="testitems")[0]
20
+
21
+ self.assertEqual(ws.name, "testitems")
22
+
23
+ # Get workspace
24
+ ws_clone = fca.get_workspace(workspace_id=ws.id)
25
+
26
+ self.assertEqual(ws.id, ws_clone.id)
27
+
28
+ # Discover git connections
29
+
30
+ git_connections = fca.discover_git_connections()
31
+
32
+ self.assertGreater(len(git_connections), 0)
33
+
34
+ git_conn = [g for g in git_connections if g['workspaceId'] == '63aa9e13-4912-4abe-9156-8a56e565b7a3'][0]
35
+ self.assertEqual(git_conn['gitProviderDetails']['ownerName'], 'DaSenf1860')
36
+
37
+ # List workspace access details
38
+
39
+ ws_access = fca.list_workspace_access_details(ws.id)
40
+ principials = ws_access["accessDetails"]
41
+ principials_ids = [p["principal"]["id"] for p in principials]
42
+ self.assertIn(user_id, principials_ids)
43
+
44
+ # Get access entities
45
+
46
+ access_entities = fca.list_access_entities(user_id, type="Notebook")
47
+ self.assertGreater(len(access_entities), 0)
48
+
49
+ # List tenant settings
50
+
51
+ settings = fca.list_tenant_settings()
52
+ monitoring_setting = [setting for setting in settings if setting['settingName'] == 'PlatformMonitoringTenantSetting'][0]
53
+
54
+ self.assertIsNotNone(monitoring_setting)
55
+
56
+ # List tenant settings capacity overrides
57
+
58
+ settings_capa = fca.list_capacities_tenant_settings_overrides()
59
+ setting = [s for s in settings_capa if s['id'] == '9E7E757D-D567-4FB3-BC4F-D230AABF2A00']
60
+
61
+ self.assertGreater(len(setting), 0)
62
+
63
+
64
+ # List tenant settings overrides on domains
65
+
66
+ domain_overrides = fca.list_domain_tenant_settings_overrides()
67
+ len(domain_overrides) == 0
68
+ self.assertEqual(len(domain_overrides), 0)
69
+
70
+ # List tenant settings overrides on workspaces
71
+
72
+ workspace_overrides = fca.list_workspace_tenant_settings_overrides()
73
+ wover = [w for w in workspace_overrides if w["id"] == "192333b2-5f89-4da5-ae69-64a3ee4c649c"]
74
+ self.assertIsNotNone(wover)
75
+
76
+ # Update tenant settings
77
+
78
+ if monitoring_setting["enabled"] == False:
79
+ changed_settings = fca.update_tenant_setting("PlatformMonitoringTenantSetting", enabled=True)
80
+ "tenantSettings" in changed_settings and len(changed_settings["tenantSettings"]) > 0 and changed_settings["tenantSettings"][0]["enabled"] == True
81
+ else:
82
+ changed_settings = fca.update_tenant_setting("PlatformMonitoringTenantSetting", enabled=False)
83
+ "tenantSettings" in changed_settings and len(changed_settings["tenantSettings"]) > 0 and changed_settings["tenantSettings"][0]["enabled"] == False
84
+
85
+
86
+
87
+ # Update tenant settings capacity overrides
88
+
89
+
90
+ enabledSecurityGroups = [{'graphId': '73ba0244-b701-41ed-96d9-79917b74f5f8', 'name': 'fabricadmins'}]
91
+ excludedSecurityGroups = [{'graphId': '16450670-829a-4b70-b80e-6524eea067cb', 'name': 'fabricuser'}]
92
+ feedback = fca.update_capacity_tenant_setting_override("9e7e757d-d567-4fb3-bc4f-d230aabf2a00",
93
+ "PlatformMonitoringTenantSetting",
94
+ enabled=True,
95
+ excluded_security_groups=excludedSecurityGroups,
96
+ enabled_security_groups=enabledSecurityGroups)
97
+
98
+
99
+ # List tenant settings overrides by capacity id
100
+
101
+ settings_capa = fca.list_capacity_tenant_settings_overrides_by_capacity_id("9e7e757d-d567-4fb3-bc4f-d230aabf2a00")
102
+ setting = [s for s in settings_capa if s['settingName'] == 'PlatformMonitoringTenantSetting']
103
+
104
+ self.assertGreater(len(setting), 0)
105
+
106
+ # Update tenant settings capacity overrides
107
+
108
+ status_code = fca.delete_capacity_tenant_setting_override("9e7e757d-d567-4fb3-bc4f-d230aabf2a00", "PlatformMonitoringTenantSetting")
109
+
110
+ self.assertEqual(status_code, 200)
111
+
112
+ settings = [set for set in fca.list_capacity_tenant_settings_overrides_by_capacity_id("9e7e757d-d567-4fb3-bc4f-d230aabf2a00") if set["settingName"] == "PlatformMonitoringTenantSetting"]
113
+
114
+ self.assertEqual(len(settings), 0)
115
+
116
+ self.assertIn("overrides", feedback)
117
+ self.assertGreater(len(feedback["overrides"]), 0)
118
+ self.assertEqual(feedback["overrides"][0]["enabled"], True)
119
+
120
+
121
+
122
+
123
+
124
+
125
+
126
+ # List items
127
+
128
+ item_list = fca.list_items(workspace_id=ws.id)
129
+ self.assertGreater(len(item_list), 0)
130
+
131
+ # Get item
132
+
133
+ item = fca.get_item(workspace_id=ws.id, item_id=item_list[0].id)
134
+ self.assertEqual(item.id, item_list[0].id)
135
+
136
+ # Get item access details
137
+
138
+ item_access = fca.list_item_access_details(workspace_id=ws.id, item_id=item_list[0].id)
139
+ principials = item_access["accessDetails"]
140
+
141
+ principials_ids = [p["principal"]["id"] for p in principials]
142
+
143
+ self.assertIn(user_id, principials_ids)
144
+
145
+
146
+ def test_labels(self):
147
+
148
+ fca = self.fca
149
+
150
+ items = [{"id": "e79d7a0e-1741-4ddf-a705-b861f2775f97", "type": "Lakehouse"}]
151
+ label_id = "defa4170-0d19-0005-0007-bc88714345d2"
152
+ resp = fca.bulk_set_labels(items=items, label_id=label_id)
153
+ self.assertEqual(resp["itemsChangeLabelStatus"][0]["status"], "Succeeded")
154
+ resp = fca.bulk_remove_labels(items=items)
155
+ self.assertEqual(resp["itemsChangeLabelStatus"][0]["status"], "Succeeded")
156
+
157
+ def test_admin_external_data_shares(self):
158
+
159
+ fca = self.fca
160
+
161
+ data_shares = fca.list_external_data_shares()
162
+ ws_id = "05bc5baa-ef02-4a31-ab20-158a478151d3"
163
+
164
+ data_shares = [d for d in data_shares if d['workspaceId'] == ws_id]
165
+
166
+ self.assertGreater(len(data_shares), 0)
167
+ # fca.revoke_external_data_share(external_data_share_id = data_shares[0]['id'],
168
+ # item_id = data_shares[0]['itemId'],
169
+ # workspace_id = data_shares[0]['workspaceId'])
170
+ # data_shares = fca.list_external_data_shares()
171
+
172
+ # data_shares = [d for d in data_shares if d['workspaceId'] == ws_id]
173
+
174
+ # self.assertEqual(data_shares[0]['status'], 'Revoked')
@@ -0,0 +1,46 @@
1
+ import unittest
2
+ from dotenv import load_dotenv
3
+ from msfabricpysdkcore import FabricClientAdmin
4
+
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.fca = FabricClientAdmin()
12
+
13
+ def test_admin_api(self):
14
+ fca = self.fca
15
+
16
+ sdk_tag = [tag for tag in fca.list_tags() if tag["displayName"] == "sdk_tag_temp"]
17
+ if len(sdk_tag) > 0:
18
+ sdk_tag = sdk_tag[0]
19
+ resp = fca.delete_tag(tag_id=sdk_tag["id"])
20
+ self.assertEqual(resp, 200)
21
+
22
+ new_tags = [{"displayName": "sdk_tag_temp"}]
23
+ resp = fca.bulk_create_tags(create_tags_request=new_tags)
24
+ self.assertEqual(len(resp["tags"]), 1)
25
+ resp = resp["tags"][0]
26
+ self.assertEqual(resp["displayName"], "sdk_tag_temp")
27
+
28
+ sdk_tag = [tag for tag in fca.list_tags() if tag["displayName"] == "sdk_tag_temp"]
29
+ self.assertEqual(len(sdk_tag), 1)
30
+ sdk_tag = sdk_tag[0]
31
+
32
+ self.assertIsNotNone(sdk_tag["id"])
33
+
34
+ resp = fca.update_tag(tag_id=sdk_tag["id"], display_name="sdk_tag_updated")
35
+ self.assertIsNotNone(resp["id"])
36
+ self.assertEqual(resp["displayName"], "sdk_tag_updated")
37
+
38
+
39
+ resp = fca.delete_tag(tag_id=resp["id"])
40
+ self.assertEqual(resp, 200)
41
+
42
+ sdk_tag = [tag for tag in fca.list_tags() if tag["displayName"] == "sdk_tag_temp"]
43
+ self.assertEqual(len(sdk_tag), 0)
44
+
45
+
46
+
@@ -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_apache_airflow_job(self):
14
+ fcc = self.fcc
15
+
16
+ workspace_id = "05bc5baa-ef02-4a31-ab20-158a478151d3"
17
+ item_id = "4e685286-d909-4ccb-911f-590ee3c3df14"
18
+
19
+ apache_airflow_job = fcc.list_apache_airflow_jobs(workspace_id=workspace_id)
20
+ for apache_airflow_job in apache_airflow_job:
21
+ if apache_airflow_job.id != item_id:
22
+ resp = fcc.delete_apache_airflow_job(workspace_id=workspace_id, apache_airflow_job_id=apache_airflow_job.id)
23
+ self.assertEqual(resp, 200)
24
+
25
+ apache_airflow_job_definition = fcc.get_apache_airflow_job_definition(workspace_id=workspace_id, apache_airflow_job_id=item_id)
26
+ self.assertIn("definition", apache_airflow_job_definition)
27
+ definition = apache_airflow_job_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
+ apache_airflow_job_new = fcc.create_apache_airflow_job(workspace_id=workspace_id, display_name=date_str, definition=definition)
34
+
35
+ self.assertEqual(apache_airflow_job_new.display_name, date_str)
36
+
37
+ apache_airflow_job_get = fcc.get_apache_airflow_job(workspace_id=workspace_id, apache_airflow_job_id=apache_airflow_job_new.id)
38
+ self.assertEqual(apache_airflow_job_get.display_name, date_str)
39
+
40
+ apache_airflow_job = fcc.list_apache_airflow_jobs(workspace_id=workspace_id)
41
+ self.assertEqual(len(apache_airflow_job), 2)
42
+
43
+ date_str_updated = date_str + "_updated"
44
+ apache_airflow_job_updated = fcc.update_apache_airflow_job(workspace_id=workspace_id, apache_airflow_job_id=apache_airflow_job_new.id, display_name=date_str_updated, return_item=True)
45
+ self.assertEqual(apache_airflow_job_updated.display_name, date_str_updated)
46
+
47
+ apache_airflow_job_updated = fcc.update_apache_airflow_job_definition(workspace_id=workspace_id, apache_airflow_job_id=apache_airflow_job_new.id, definition=definition)
48
+ self.assertEqual(apache_airflow_job_updated.status_code, 200)
49
+
50
+ for apache_airflow_job in apache_airflow_job:
51
+ if apache_airflow_job.id != item_id:
52
+ resp = fcc.delete_apache_airflow_job(workspace_id=workspace_id, apache_airflow_job_id=apache_airflow_job.id)
53
+ self.assertEqual(resp, 200)
54
+
55
+
56
+
57
+
58
+
59
+
60
+
@@ -0,0 +1,111 @@
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_connection(self):
17
+
18
+ datetime_str = datetime.now().strftime("%Y%m%H%M%S")
19
+ datetime_str
20
+ fc = self.fc
21
+
22
+ # display_name = "ContosoCloudConnection" + datetime_str
23
+
24
+ # cr = {"connectivityType": "ShareableCloud",
25
+ # "displayName": display_name,
26
+ # "connectionDetails": {
27
+ # 'type': "SQL",
28
+ # 'creationMethod': 'SQL',
29
+ # "parameters": [
30
+ # {
31
+ # "dataType": "Text",
32
+ # "name": "server",
33
+ # "value": "dfsdemo.database.windows.net"
34
+ # },
35
+ # {
36
+ # "dataType": "Text",
37
+ # "name": "database",
38
+ # "value": "dfsdemo"
39
+ # }
40
+ # ]},
41
+ # 'privacyLevel': 'Organizational',
42
+ # 'credentialDetails': {'credentials':{'credentialType': 'Basic',
43
+ # 'userName': 'new_user',
44
+ # 'password': 'StrongPassword123!'},
45
+ # 'singleSignOnType': 'None',
46
+ # 'connectionEncryption': 'NotEncrypted',
47
+ # 'skipTestConnection': False}
48
+ # }
49
+
50
+
51
+
52
+ # connection = fc.create_connection(connection_request=cr)
53
+ # self.assertIsNotNone(connection)
54
+ # self.assertIn('id', connection)
55
+ # self.assertIn('displayName', connection)
56
+ # self.assertEqual(connection['displayName'], display_name)
57
+
58
+ # connection2 = fc.get_connection(connection_name=display_name)
59
+ # self.assertEqual(connection['id'], connection2['id'])
60
+
61
+
62
+ # connections = fc.list_connections()
63
+ # connection_names = [conn['displayName'] for conn in connections]
64
+ # self.assertIn(display_name, connection_names)
65
+
66
+ # id = connection['id']
67
+
68
+ # role_assis = fc.list_connection_role_assignments(connection_id=id)
69
+ # self.assertEqual(len(role_assis), 1)
70
+
71
+ # principal = {"id" : "755f273c-98f8-408c-a886-691794938bd8",
72
+ # "type" : "ServicePrincipal"}
73
+
74
+ # add_role_assi = fc.add_connection_role_assignment(connection_id=id, principal=principal, role='User')
75
+ # self.assertIsNotNone(add_role_assi)
76
+ # self.assertIn('id', add_role_assi)
77
+ # role_assi_id = add_role_assi['id']
78
+
79
+ # role_assis = fc.list_connection_role_assignments(connection_id=id)
80
+ # self.assertEqual(len(role_assis), 2)
81
+
82
+ # role_assi = fc.get_connection_role_assignment(connection_id=id,
83
+ # connection_role_assignment_id=role_assi_id)
84
+ # self.assertEqual(role_assi['id'], role_assi_id)
85
+
86
+ # role_assi = fc.update_connection_role_assignment(connection_id=id,
87
+ # connection_role_assignment_id=role_assi_id,
88
+ # role='UserWithReshare')
89
+ # self.assertEqual(role_assi['role'], 'UserWithReshare')
90
+
91
+ # status_code = fc.delete_connection_role_assignment(connection_id=id,
92
+ # connection_role_assignment_id=role_assi_id)
93
+ # self.assertEqual(status_code, 200)
94
+
95
+
96
+ # cr = {
97
+ # "connectivityType": "ShareableCloud",
98
+ # "displayName": f"sqlserver{datetime_str}"
99
+ # }
100
+
101
+ # updated_connection = fc.update_connection(connection_id=id, connection_request=cr)
102
+ # self.assertIsNotNone(updated_connection)
103
+
104
+
105
+ # connection2 = fc.get_connection(connection_id=id)
106
+ # self.assertEqual(connection['id'], connection2['id'])
107
+ # self.assertEqual(connection2['displayName'], f"sqlserver{datetime_str}")
108
+
109
+ # status_code = fc.delete_connection(connection_id=id)
110
+ # self.assertEqual(status_code, 200)
111
+
@@ -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_copy_jobs(self):
14
+ fcc = self.fcc
15
+
16
+ workspace_id = "05bc5baa-ef02-4a31-ab20-158a478151d3"
17
+ item_id = "a9e59ec1-524b-49b1-a185-37e47dc0ceb9"
18
+
19
+ copy_jobs = fcc.list_copy_jobs(workspace_id=workspace_id)
20
+ for copy_job in copy_jobs:
21
+ if copy_job.id != item_id:
22
+ resp = fcc.delete_copy_job(workspace_id=workspace_id, copy_job_id=copy_job.id)
23
+ self.assertEqual(resp, 200)
24
+
25
+ copy_job_definition = fcc.get_copy_job_definition(workspace_id=workspace_id, copy_job_id=item_id)
26
+ self.assertIn("definition", copy_job_definition)
27
+ definition = copy_job_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
+ copy_job_new = fcc.create_copy_job(workspace_id=workspace_id, display_name=date_str, definition=definition)
34
+
35
+ self.assertEqual(copy_job_new.display_name, date_str)
36
+
37
+ copy_job_get = fcc.get_copy_job(workspace_id=workspace_id, copy_job_id=copy_job_new.id)
38
+ self.assertEqual(copy_job_get.display_name, date_str)
39
+
40
+ copy_jobs = fcc.list_copy_jobs(workspace_id=workspace_id)
41
+ self.assertEqual(len(copy_jobs), 2)
42
+
43
+ date_str_updated = date_str + "_updated"
44
+ copy_job_updated = fcc.update_copy_job(workspace_id=workspace_id, copy_job_id=copy_job_new.id, display_name=date_str_updated, return_item=True)
45
+ self.assertEqual(copy_job_updated.display_name, date_str_updated)
46
+
47
+ copy_job_updated = fcc.update_copy_job_definition(workspace_id=workspace_id, copy_job_id=copy_job_new.id, definition=definition)
48
+ self.assertEqual(copy_job_updated.status_code, 200)
49
+
50
+ for copy_job in copy_jobs:
51
+ if copy_job.id != item_id:
52
+ resp = fcc.delete_copy_job(workspace_id=workspace_id, copy_job_id=copy_job.id)
53
+ self.assertEqual(resp, 200)
54
+
55
+
56
+
57
+
58
+
59
+
60
+
@@ -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_dataflows(self):
14
+ fcc = self.fcc
15
+
16
+ workspace_id = "05bc5baa-ef02-4a31-ab20-158a478151d3"
17
+ item_id = "8bc6f2f1-2ef9-4dc1-ab47-f55aa90e4088"
18
+
19
+ dataflows = fcc.list_dataflows(workspace_id=workspace_id)
20
+ for dataflow in dataflows:
21
+ if dataflow.id != item_id:
22
+ resp = fcc.delete_dataflow(workspace_id=workspace_id, dataflow_id=dataflow.id)
23
+ self.assertEqual(resp, 200)
24
+
25
+ dataflow_definition = fcc.get_dataflow_definition(workspace_id=workspace_id, dataflow_id=item_id)
26
+ self.assertIn("definition", dataflow_definition)
27
+ definition = dataflow_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"dataflow{date_str}"
32
+
33
+ dataflow_new = fcc.create_dataflow(workspace_id=workspace_id, display_name=date_str, definition=definition)
34
+
35
+ self.assertEqual(dataflow_new.display_name, date_str)
36
+
37
+ dataflow_get = fcc.get_dataflow(workspace_id=workspace_id, dataflow_id=dataflow_new.id)
38
+ self.assertEqual(dataflow_get.display_name, date_str)
39
+
40
+ dataflows = fcc.list_dataflows(workspace_id=workspace_id)
41
+ self.assertEqual(len(dataflows), 2)
42
+
43
+ date_str_updated = date_str + "_updated"
44
+ dataflow_updated = fcc.update_dataflow(workspace_id=workspace_id, dataflow_id=dataflow_new.id, display_name=date_str_updated, return_item=True)
45
+ self.assertEqual(dataflow_updated.display_name, date_str_updated)
46
+
47
+ dataflow_updated = fcc.update_dataflow_definition(workspace_id=workspace_id, dataflow_id=dataflow_new.id, definition=definition)
48
+ self.assertEqual(dataflow_updated.status_code, 200)
49
+
50
+ for dataflow in dataflows:
51
+ if dataflow.id != item_id:
52
+ resp = fcc.delete_dataflow(workspace_id=workspace_id, dataflow_id=dataflow.id)
53
+ self.assertEqual(resp, 200)
54
+
55
+
56
+
57
+
58
+
59
+
60
+
@@ -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_data_pipelines(self):
14
+ fcc = self.fcc
15
+
16
+ workspace_id = "05bc5baa-ef02-4a31-ab20-158a478151d3"
17
+ item_id = "b7746e38-5409-487a-969c-fb7cb026b5d3"
18
+
19
+ data_pipelines = fcc.list_data_pipelines(workspace_id=workspace_id)
20
+ for data_pipeline in data_pipelines:
21
+ if data_pipeline.id != item_id:
22
+ resp = fcc.delete_data_pipeline(workspace_id=workspace_id, data_pipeline_id=data_pipeline.id)
23
+ self.assertEqual(resp, 200)
24
+
25
+ data_pipeline_definition = fcc.get_data_pipeline_definition(workspace_id=workspace_id, data_pipeline_id=item_id)
26
+ self.assertIn("definition", data_pipeline_definition)
27
+ definition = data_pipeline_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"data_pipeline{date_str}"
32
+
33
+ data_pipeline_new = fcc.create_data_pipeline(workspace_id=workspace_id, display_name=date_str, definition=definition)
34
+
35
+ self.assertEqual(data_pipeline_new.display_name, date_str)
36
+
37
+ data_pipeline_get = fcc.get_data_pipeline(workspace_id=workspace_id, data_pipeline_id=data_pipeline_new.id)
38
+ self.assertEqual(data_pipeline_get.display_name, date_str)
39
+
40
+ data_pipelines = fcc.list_data_pipelines(workspace_id=workspace_id)
41
+ self.assertEqual(len(data_pipelines), 2)
42
+
43
+ date_str_updated = date_str + "_updated"
44
+ data_pipeline_updated = fcc.update_data_pipeline(workspace_id=workspace_id, data_pipeline_id=data_pipeline_new.id, display_name=date_str_updated, return_item=True)
45
+ self.assertEqual(data_pipeline_updated.display_name, date_str_updated)
46
+
47
+ data_pipeline_updated = fcc.update_data_pipeline_definition(workspace_id=workspace_id, data_pipeline_id=data_pipeline_new.id, definition=definition)
48
+ self.assertEqual(data_pipeline_updated.status_code, 200)
49
+
50
+ for data_pipeline in data_pipelines:
51
+ if data_pipeline.id != item_id:
52
+ resp = fcc.delete_data_pipeline(workspace_id=workspace_id, data_pipeline_id=data_pipeline.id)
53
+ self.assertEqual(resp, 200)
54
+
55
+
56
+
57
+
58
+
59
+
60
+