msfabricpysdkcore 0.0.10__py3-none-any.whl → 0.0.12__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.
- msfabricpysdkcore/auth.py +9 -6
- msfabricpysdkcore/client.py +5 -4
- msfabricpysdkcore/coreapi.py +76 -16
- msfabricpysdkcore/environment.py +51 -64
- msfabricpysdkcore/item.py +1 -4
- msfabricpysdkcore/long_running_operation.py +9 -4
- msfabricpysdkcore/otheritems.py +61 -0
- msfabricpysdkcore/tests/test_datapipelines.py +48 -0
- msfabricpysdkcore/tests/test_deployment_pipeline.py +1 -2
- msfabricpysdkcore/tests/test_environments.py +48 -31
- msfabricpysdkcore/tests/test_evenstreams.py +44 -0
- msfabricpysdkcore/tests/test_git.py +2 -2
- msfabricpysdkcore/tests/test_items_incl_lakehouse.py +35 -161
- msfabricpysdkcore/tests/test_kqldatabases.py +48 -0
- msfabricpysdkcore/tests/test_sparkjobdefinition.py +55 -0
- msfabricpysdkcore/tests/test_workspaces_capacities.py +60 -50
- msfabricpysdkcore/workspace.py +163 -39
- {msfabricpysdkcore-0.0.10.dist-info → msfabricpysdkcore-0.0.12.dist-info}/METADATA +22 -8
- msfabricpysdkcore-0.0.12.dist-info/RECORD +39 -0
- {msfabricpysdkcore-0.0.10.dist-info → msfabricpysdkcore-0.0.12.dist-info}/WHEEL +1 -1
- msfabricpysdkcore-0.0.10.dist-info/RECORD +0 -35
- {msfabricpysdkcore-0.0.10.dist-info → msfabricpysdkcore-0.0.12.dist-info}/LICENSE +0 -0
- {msfabricpysdkcore-0.0.10.dist-info → msfabricpysdkcore-0.0.12.dist-info}/top_level.txt +0 -0
@@ -10,39 +10,56 @@ class TestFabricClientCore(unittest.TestCase):
|
|
10
10
|
|
11
11
|
def __init__(self, *args, **kwargs):
|
12
12
|
super(TestFabricClientCore, self).__init__(*args, **kwargs)
|
13
|
-
#load_dotenv()
|
14
13
|
self.fc = FabricClientCore()
|
15
|
-
self.workspace_id = "d8a5abe0-9eed-406d-ab46-343bc57ddbe5"
|
16
14
|
|
17
|
-
|
18
|
-
def test_environments(self):
|
15
|
+
def test_environments_crudl(self):
|
19
16
|
fc = self.fc
|
20
|
-
workspace_id =
|
21
|
-
|
17
|
+
workspace_id = 'd8a5abe0-9eed-406d-ab46-343bc57ddbe5'
|
22
18
|
datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
|
23
|
-
envname = "testitem" + datetime_str
|
24
|
-
env1 = fc.create_environment(workspace_id, envname, "testenv description")
|
25
|
-
|
26
|
-
env2 = fc.get_environment(workspace_id, environment_name=envname)
|
27
|
-
|
28
|
-
self.assertEqual(env1.id, env2.id)
|
29
|
-
|
30
|
-
env_list = fc.list_environments(workspace_id, with_properties=True)
|
31
|
-
env_names = [env.display_name for env in env_list]
|
32
|
-
|
33
|
-
self.assertIn(envname, env_names)
|
34
|
-
|
35
|
-
env3 = fc.update_environment(workspace_id, env1.id, envname + "name", "testenv description updated")
|
36
|
-
|
37
|
-
env4 = fc.get_environment(workspace_id, environment_name=env3.display_name)
|
38
|
-
|
39
|
-
self.assertEqual(env1.id, env4.id)
|
40
|
-
|
41
|
-
fc.delete_environment(workspace_id, env4.id)
|
42
|
-
|
43
|
-
env_list = fc.list_environments(workspace_id, with_properties=True)
|
44
|
-
env_names = [env.display_name for env in env_list]
|
45
|
-
|
46
|
-
self.assertNotIn(env4.display_name, env_names)
|
47
19
|
|
48
|
-
|
20
|
+
env_name = "env" + datetime_str
|
21
|
+
environment1 = fc.create_environment(workspace_id, display_name=env_name)
|
22
|
+
self.assertEqual(environment1.display_name, env_name)
|
23
|
+
|
24
|
+
environments = fc.list_environments(workspace_id)
|
25
|
+
environment_names = [env.display_name for env in environments]
|
26
|
+
self.assertGreater(len(environments), 0)
|
27
|
+
self.assertIn(env_name, environment_names)
|
28
|
+
|
29
|
+
env = fc.get_environment(workspace_id, environment_name=env_name)
|
30
|
+
self.assertIsNotNone(env.id)
|
31
|
+
self.assertEqual(env.display_name, env_name)
|
32
|
+
new_name = env_name + "2"
|
33
|
+
env2 = fc.update_environment(workspace_id, env.id, display_name=new_name)
|
34
|
+
|
35
|
+
env = fc.get_environment(workspace_id, environment_id=env.id)
|
36
|
+
self.assertEqual(env.display_name, new_name)
|
37
|
+
self.assertEqual(env.id, env2.id)
|
38
|
+
|
39
|
+
status_code = fc.delete_environment(workspace_id, env.id)
|
40
|
+
self.assertEqual(status_code, 200)
|
41
|
+
|
42
|
+
def test_environment_details(self):
|
43
|
+
fc = FabricClientCore()
|
44
|
+
workspace_id = 'd8a5abe0-9eed-406d-ab46-343bc57ddbe5'
|
45
|
+
environment_id = 'fae6d1a7-d671-4091-89b1-f42626deb56f'
|
46
|
+
published_settings = fc.get_published_settings(workspace_id=workspace_id, environment_id=environment_id)
|
47
|
+
self.assertIsNotNone(published_settings)
|
48
|
+
self.assertIn("instancePool", published_settings)
|
49
|
+
self.assertIn("dynamicExecutorAllocation", published_settings)
|
50
|
+
staging_settings = fc.get_staging_settings(workspace_id=workspace_id, environment_id=environment_id)
|
51
|
+
self.assertIsNotNone(staging_settings)
|
52
|
+
self.assertIn("instancePool", staging_settings)
|
53
|
+
self.assertIn("dynamicExecutorAllocation", staging_settings)
|
54
|
+
if staging_settings["driverCores"] == 8:
|
55
|
+
driver_cores = 4
|
56
|
+
else:
|
57
|
+
driver_cores = 8
|
58
|
+
updated_settings = fc.update_staging_settings(workspace_id=workspace_id, environment_id=environment_id, driver_cores=driver_cores)
|
59
|
+
self.assertIn("instancePool", updated_settings)
|
60
|
+
self.assertIn("dynamicExecutorAllocation", updated_settings)
|
61
|
+
self.assertEqual(updated_settings["driverCores"], driver_cores)
|
62
|
+
updated_settings = fc.get_staging_settings(workspace_id=workspace_id, environment_id=environment_id)
|
63
|
+
self.assertIn("instancePool", updated_settings)
|
64
|
+
self.assertIn("dynamicExecutorAllocation", updated_settings)
|
65
|
+
self.assertEqual(updated_settings["driverCores"], driver_cores)
|
@@ -0,0 +1,44 @@
|
|
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
|
+
fc = self.fc
|
19
|
+
workspace_id = 'd8a5abe0-9eed-406d-ab46-343bc57ddbe5'
|
20
|
+
|
21
|
+
datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
|
22
|
+
es_name = "es" + datetime_str
|
23
|
+
|
24
|
+
eventstream = fc.create_eventstream(workspace_id, display_name=es_name)
|
25
|
+
self.assertEqual(eventstream.display_name, es_name)
|
26
|
+
|
27
|
+
eventstreams = fc.list_eventstreams(workspace_id)
|
28
|
+
eventstream_names = [es.display_name for es in eventstreams]
|
29
|
+
self.assertGreater(len(eventstreams), 0)
|
30
|
+
self.assertIn(es_name, eventstream_names)
|
31
|
+
|
32
|
+
|
33
|
+
es = fc.get_eventstream(workspace_id, eventstream_name=es_name)
|
34
|
+
self.assertIsNotNone(es.id)
|
35
|
+
self.assertEqual(es.display_name, es_name)
|
36
|
+
|
37
|
+
es2 = fc.update_eventstream(workspace_id, es.id, display_name=f"{es_name}2")
|
38
|
+
|
39
|
+
es = fc.get_eventstream(workspace_id, eventstream_id=es.id)
|
40
|
+
self.assertEqual(es.display_name, f"{es_name}2")
|
41
|
+
self.assertEqual(es.id, es2.id)
|
42
|
+
|
43
|
+
status_code = fc.delete_eventstream(workspace_id, es.id)
|
44
|
+
self.assertEqual(status_code, 200)
|
@@ -30,7 +30,7 @@ class TestFabricClientCore(unittest.TestCase):
|
|
30
30
|
|
31
31
|
status_code = self.fc.git_connect(workspace_id=ws2.id, git_provider_details=git_provider_details)
|
32
32
|
|
33
|
-
self.assertEqual(status_code,
|
33
|
+
self.assertEqual(status_code, 200)
|
34
34
|
|
35
35
|
initialization_strategy = "PreferWorkspace"
|
36
36
|
|
@@ -56,7 +56,7 @@ class TestFabricClientCore(unittest.TestCase):
|
|
56
56
|
|
57
57
|
status_code = self.fc.git_disconnect(workspace_id=ws2.id)
|
58
58
|
|
59
|
-
self.assertEqual(status_code,
|
59
|
+
self.assertEqual(status_code, 200)
|
60
60
|
|
61
61
|
ws2.delete()
|
62
62
|
|
@@ -78,8 +78,7 @@ class TestFabricClientCore(unittest.TestCase):
|
|
78
78
|
|
79
79
|
fc = self.fc
|
80
80
|
|
81
|
-
|
82
|
-
workspace_id = workspace.id
|
81
|
+
workspace_id = 'd8a5abe0-9eed-406d-ab46-343bc57ddbe5'
|
83
82
|
|
84
83
|
list_dashboards = fc.list_dashboards(workspace_id)
|
85
84
|
dashboard_names = [dashboard.display_name for dashboard in list_dashboards]
|
@@ -144,8 +143,7 @@ class TestFabricClientCore(unittest.TestCase):
|
|
144
143
|
self.assertIn(table_name, table_names)
|
145
144
|
|
146
145
|
fc = self.fc
|
147
|
-
|
148
|
-
workspace_id = workspace.id
|
146
|
+
workspace_id = 'd8a5abe0-9eed-406d-ab46-343bc57ddbe5'
|
149
147
|
|
150
148
|
lakehouse = fc.create_lakehouse(workspace_id=workspace_id, display_name="lakehouse2")
|
151
149
|
self.assertIsNotNone(lakehouse.id)
|
@@ -171,116 +169,38 @@ class TestFabricClientCore(unittest.TestCase):
|
|
171
169
|
self.assertEqual(status_code, 200)
|
172
170
|
|
173
171
|
|
174
|
-
def
|
175
|
-
|
176
|
-
fc = self.fc
|
177
|
-
workspace = fc.get_workspace_by_name("testitems")
|
178
|
-
workspace_id = workspace.id
|
179
|
-
|
180
|
-
dps = fc.list_data_pipelines(workspace_id)
|
181
|
-
dp_names = [dp.display_name for dp in dps]
|
182
|
-
self.assertGreater(len(dps), 0)
|
183
|
-
self.assertIn("pipeline1", dp_names)
|
184
|
-
|
185
|
-
dp = fc.get_data_pipeline(workspace_id, data_pipeline_name="pipeline1")
|
186
|
-
self.assertIsNotNone(dp.id)
|
187
|
-
self.assertIsNotNone(dp.definition)
|
188
|
-
self.assertEqual(dp.display_name, "pipeline1")
|
189
|
-
|
190
|
-
dp_new = fc.create_data_pipeline(workspace_id, display_name="pipeline_new", description="asda")
|
191
|
-
dp_new.update_definition(dp.definition)
|
192
|
-
|
193
|
-
self.assertEqual(dp_new.display_name, "pipeline_new")
|
194
|
-
|
195
|
-
dp2 = fc.update_data_pipeline(workspace_id, dp.id, display_name="pipeline2")
|
196
|
-
|
197
|
-
dp = fc.get_data_pipeline(workspace_id, data_pipeline_id=dp.id)
|
198
|
-
self.assertEqual(dp.display_name, "pipeline2")
|
199
|
-
self.assertEqual(dp.id, dp2.id)
|
200
|
-
|
201
|
-
dp2 = fc.update_data_pipeline(workspace_id, dp.id, display_name="pipeline1")
|
202
|
-
|
203
|
-
dp = fc.get_data_pipeline(workspace_id, data_pipeline_id=dp.id)
|
204
|
-
self.assertEqual(dp.display_name, "pipeline1")
|
205
|
-
self.assertEqual(dp.id, dp2.id)
|
206
|
-
status_code = fc.delete_data_pipeline(workspace_id, dp_new.id)
|
207
|
-
self.assertEqual(status_code, 200)
|
208
|
-
|
209
|
-
def test_eventstreams(self):
|
210
|
-
|
172
|
+
def test_eventhouses(self):
|
173
|
+
|
211
174
|
fc = self.fc
|
212
|
-
|
213
|
-
workspace_id = workspace.id
|
214
|
-
|
175
|
+
workspace_id = 'd8a5abe0-9eed-406d-ab46-343bc57ddbe5'
|
215
176
|
datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
self.assertEqual(eventstream.display_name, es_name)
|
220
|
-
|
221
|
-
eventstreams = fc.list_eventstreams(workspace_id)
|
222
|
-
eventstream_names = [es.display_name for es in eventstreams]
|
223
|
-
self.assertGreater(len(eventstreams), 0)
|
224
|
-
self.assertIn(es_name, eventstream_names)
|
225
|
-
|
177
|
+
eventhouse_name = "evh" + datetime_str
|
178
|
+
eventhouse1 = fc.create_eventhouse(workspace_id, display_name=eventhouse_name)
|
179
|
+
self.assertEqual(eventhouse1.display_name, eventhouse_name)
|
226
180
|
|
227
|
-
|
228
|
-
|
229
|
-
self.
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
self.assertEqual(
|
235
|
-
|
236
|
-
|
237
|
-
|
181
|
+
eventhouses = fc.list_eventhouses(workspace_id)
|
182
|
+
eventhouse_names = [eh.display_name for eh in eventhouses]
|
183
|
+
self.assertGreater(len(eventhouses), 0)
|
184
|
+
self.assertIn(eventhouse_name, eventhouse_names)
|
185
|
+
|
186
|
+
eh = fc.get_eventhouse(workspace_id, eventhouse_name=eventhouse_name)
|
187
|
+
self.assertIsNotNone(eh.id)
|
188
|
+
self.assertEqual(eh.display_name, eventhouse_name)
|
189
|
+
new_display_name = eventhouse_name + "2"
|
190
|
+
eh2 = fc.update_eventhouse(workspace_id, eh.id, display_name=new_display_name)
|
191
|
+
|
192
|
+
eh = fc.get_eventhouse(workspace_id, eventhouse_id=eh.id)
|
193
|
+
self.assertEqual(eh.display_name, new_display_name)
|
194
|
+
self.assertEqual(eh.id, eh2.id)
|
195
|
+
|
196
|
+
status_code = fc.delete_eventhouse(workspace_id, eh.id)
|
238
197
|
self.assertEqual(status_code, 200)
|
239
198
|
|
240
|
-
def test_kql_database(self):
|
241
|
-
|
242
|
-
fc = self.fc
|
243
|
-
workspace = fc.get_workspace_by_name("testitems")
|
244
|
-
workspace_id = workspace.id
|
245
|
-
|
246
|
-
kql_databases = fc.list_kql_databases(workspace_id)
|
247
|
-
kql_database_names = [kqldb.display_name for kqldb in kql_databases]
|
248
|
-
self.assertGreater(len(kql_databases), 0)
|
249
|
-
self.assertIn("kqldatabase1", kql_database_names)
|
250
|
-
|
251
|
-
kqldb = fc.get_kql_database(workspace_id, kql_database_name="kqldatabase1")
|
252
|
-
self.assertIsNotNone(kqldb.id)
|
253
|
-
self.assertEqual(kqldb.display_name, "kqldatabase1")
|
254
|
-
|
255
|
-
kqldb2 = fc.update_kql_database(workspace_id, kqldb.id, display_name="kqldb2")
|
256
|
-
|
257
|
-
kqldb = fc.get_kql_database(workspace_id, kql_database_id=kqldb.id)
|
258
|
-
self.assertEqual(kqldb.display_name, "kqldb2")
|
259
|
-
self.assertEqual(kqldb.id, kqldb2.id)
|
260
|
-
|
261
|
-
# retry 3 times
|
262
|
-
i = 0
|
263
|
-
while i < 3:
|
264
|
-
try:
|
265
|
-
kqldb2 = fc.update_kql_database(workspace_id, kqldb.id, display_name="kqldatabase1")
|
266
|
-
break
|
267
|
-
except Exception as e:
|
268
|
-
sleep(10)
|
269
|
-
i += 1
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
kqldb = fc.get_kql_database(workspace_id, kql_database_id=kqldb.id)
|
274
|
-
self.assertEqual(kqldb.display_name, "kqldatabase1")
|
275
|
-
self.assertEqual(kqldb.id, kqldb2.id)
|
276
|
-
# status_code = fc.delete_kql_database(workspace_id, kqldb.id)
|
277
|
-
# self.assertEqual(status_code, 200)
|
278
199
|
|
279
200
|
def test_kql_querysets(self):
|
280
201
|
|
281
202
|
fc = self.fc
|
282
|
-
|
283
|
-
workspace_id = workspace.id
|
203
|
+
workspace_id = 'd8a5abe0-9eed-406d-ab46-343bc57ddbe5'
|
284
204
|
|
285
205
|
kql_queryset_name = "kqlqueryset1"
|
286
206
|
|
@@ -312,8 +232,7 @@ class TestFabricClientCore(unittest.TestCase):
|
|
312
232
|
def test_ml_experiments(self):
|
313
233
|
|
314
234
|
fc = self.fc
|
315
|
-
|
316
|
-
workspace_id = workspace.id
|
235
|
+
workspace_id = 'd8a5abe0-9eed-406d-ab46-343bc57ddbe5'
|
317
236
|
|
318
237
|
ml_experiment = fc.create_ml_experiment(workspace_id, display_name="mlexperiment1")
|
319
238
|
self.assertEqual(ml_experiment.display_name, "mlexperiment1")
|
@@ -339,8 +258,7 @@ class TestFabricClientCore(unittest.TestCase):
|
|
339
258
|
def test_ml_models(self):
|
340
259
|
|
341
260
|
fc = self.fc
|
342
|
-
|
343
|
-
workspace_id = workspace.id
|
261
|
+
workspace_id = 'd8a5abe0-9eed-406d-ab46-343bc57ddbe5'
|
344
262
|
datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
|
345
263
|
model_name = "mlm" + datetime_str
|
346
264
|
|
@@ -356,11 +274,11 @@ class TestFabricClientCore(unittest.TestCase):
|
|
356
274
|
self.assertIsNotNone(mlm.id)
|
357
275
|
self.assertEqual(mlm.display_name, model_name)
|
358
276
|
|
359
|
-
|
277
|
+
mlm2 = fc.update_ml_model(workspace_id=workspace_id,ml_model_id= mlm.id, description=model_name)
|
360
278
|
|
361
|
-
|
362
|
-
|
363
|
-
|
279
|
+
mlm = fc.get_ml_model(workspace_id, ml_model_id=mlm.id)
|
280
|
+
self.assertEqual(mlm.description, model_name)
|
281
|
+
self.assertEqual(mlm.id, mlm2.id)
|
364
282
|
|
365
283
|
status_code = fc.delete_ml_model(workspace_id, mlm.id)
|
366
284
|
self.assertEqual(status_code, 200)
|
@@ -368,8 +286,7 @@ class TestFabricClientCore(unittest.TestCase):
|
|
368
286
|
def test_notebooks(self):
|
369
287
|
|
370
288
|
fc = self.fc
|
371
|
-
|
372
|
-
workspace_id = workspace.id
|
289
|
+
workspace_id = 'd8a5abe0-9eed-406d-ab46-343bc57ddbe5'
|
373
290
|
|
374
291
|
notebook_name = "notebook125"
|
375
292
|
|
@@ -407,8 +324,7 @@ class TestFabricClientCore(unittest.TestCase):
|
|
407
324
|
def test_reports(self):
|
408
325
|
|
409
326
|
fc = self.fc
|
410
|
-
|
411
|
-
workspace_id = workspace.id
|
327
|
+
workspace_id = 'd8a5abe0-9eed-406d-ab46-343bc57ddbe5'
|
412
328
|
|
413
329
|
report_name = "report1234"
|
414
330
|
|
@@ -441,8 +357,7 @@ class TestFabricClientCore(unittest.TestCase):
|
|
441
357
|
def test_semantic_models(self):
|
442
358
|
|
443
359
|
fc = self.fc
|
444
|
-
|
445
|
-
workspace_id = workspace.id
|
360
|
+
workspace_id = 'd8a5abe0-9eed-406d-ab46-343bc57ddbe5'
|
446
361
|
|
447
362
|
semantic_model_name = "semanticmodel1234"
|
448
363
|
|
@@ -471,51 +386,10 @@ class TestFabricClientCore(unittest.TestCase):
|
|
471
386
|
status_code = fc.delete_semantic_model(workspace_id, sm.id)
|
472
387
|
self.assertEqual(status_code, 200)
|
473
388
|
|
474
|
-
|
475
|
-
def test_spark_job_definitions(self):
|
476
|
-
|
477
|
-
fc = self.fc
|
478
|
-
workspace = fc.get_workspace_by_name("testitems")
|
479
|
-
workspace_id = workspace.id
|
480
|
-
|
481
|
-
datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
|
482
|
-
spark_job_definition_name = f"sjd{datetime_str}"
|
483
|
-
|
484
|
-
spark_job_definition_w_content = fc.get_spark_job_definition(workspace_id, spark_job_definition_name="helloworld")
|
485
|
-
|
486
|
-
definition = fc.get_spark_job_definition_definition(workspace_id, spark_job_definition_w_content.id)
|
487
|
-
|
488
|
-
self.assertIsNotNone(definition)
|
489
|
-
self.assertIn("definition", definition)
|
490
|
-
definition = definition["definition"]
|
491
|
-
|
492
|
-
spark_job_definition = fc.create_spark_job_definition(workspace_id, display_name=spark_job_definition_name)
|
493
|
-
fc.update_spark_job_definition_definition(workspace_id, spark_job_definition.id, definition=definition)
|
494
|
-
spark_job_definition = fc.get_spark_job_definition(workspace_id, spark_job_definition_id=spark_job_definition.id)
|
495
|
-
self.assertEqual(spark_job_definition.display_name, spark_job_definition_name)
|
496
|
-
self.assertIsNotNone(spark_job_definition.definition)
|
497
|
-
|
498
|
-
spark_job_definitions = fc.list_spark_job_definitions(workspace_id)
|
499
|
-
spark_job_definition_names = [sjd.display_name for sjd in spark_job_definitions]
|
500
|
-
self.assertGreater(len(spark_job_definitions), 0)
|
501
|
-
self.assertIn(spark_job_definition_name, spark_job_definition_names)
|
502
|
-
|
503
|
-
sjd = fc.get_spark_job_definition(workspace_id, spark_job_definition_name=spark_job_definition_name)
|
504
|
-
self.assertIsNotNone(sjd.id)
|
505
|
-
self.assertEqual(sjd.display_name, spark_job_definition_name)
|
506
|
-
|
507
|
-
sjd = fc.update_spark_job_definition(workspace_id, sjd.id, display_name=f"{spark_job_definition_name}2")
|
508
|
-
sjd = fc.get_spark_job_definition(workspace_id, spark_job_definition_id=sjd.id)
|
509
|
-
self.assertEqual(sjd.display_name, f"{spark_job_definition_name}2")
|
510
|
-
|
511
|
-
status_code = fc.delete_spark_job_definition(workspace_id, sjd.id)
|
512
|
-
self.assertEqual(status_code, 200)
|
513
|
-
|
514
389
|
def test_warehouses(self):
|
515
390
|
|
516
391
|
fc = self.fc
|
517
|
-
|
518
|
-
workspace_id = workspace.id
|
392
|
+
workspace_id = 'd8a5abe0-9eed-406d-ab46-343bc57ddbe5'
|
519
393
|
|
520
394
|
datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
|
521
395
|
warehouse1 = f"wh{datetime_str}"
|
@@ -0,0 +1,48 @@
|
|
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_kql_database(self):
|
17
|
+
|
18
|
+
fc = self.fc
|
19
|
+
workspace_id = 'd8a5abe0-9eed-406d-ab46-343bc57ddbe5'
|
20
|
+
evenhouse_id = "14822d45-5460-4efa-9b30-8628510a9197"
|
21
|
+
|
22
|
+
creation_payload = {"databaseType" : "ReadWrite",
|
23
|
+
"parentEventhouseItemId" : evenhouse_id}
|
24
|
+
|
25
|
+
datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
|
26
|
+
kqldb_name = "kql" + datetime_str
|
27
|
+
kqldb = fc.create_kql_database(workspace_id = workspace_id, display_name=kqldb_name,
|
28
|
+
creation_payload=creation_payload)
|
29
|
+
self.assertEqual(kqldb.display_name, kqldb_name)
|
30
|
+
|
31
|
+
kql_databases = fc.list_kql_databases(workspace_id)
|
32
|
+
kql_database_names = [kqldb.display_name for kqldb in kql_databases]
|
33
|
+
self.assertGreater(len(kql_databases), 0)
|
34
|
+
self.assertIn(kqldb_name, kql_database_names)
|
35
|
+
|
36
|
+
kqldb = fc.get_kql_database(workspace_id, kql_database_name=kqldb_name)
|
37
|
+
self.assertIsNotNone(kqldb.id)
|
38
|
+
self.assertEqual(kqldb.display_name, kqldb_name)
|
39
|
+
|
40
|
+
new_name = kqldb_name+"2"
|
41
|
+
kqldb2 = fc.update_kql_database(workspace_id, kqldb.id, display_name=new_name)
|
42
|
+
|
43
|
+
kqldb = fc.get_kql_database(workspace_id, kql_database_id=kqldb.id)
|
44
|
+
self.assertEqual(kqldb.display_name, new_name)
|
45
|
+
self.assertEqual(kqldb.id, kqldb2.id)
|
46
|
+
|
47
|
+
status_code = fc.delete_kql_database(workspace_id, kqldb.id)
|
48
|
+
self.assertEqual(status_code, 200)
|
@@ -0,0 +1,55 @@
|
|
1
|
+
import unittest
|
2
|
+
from datetime import datetime
|
3
|
+
from dotenv import load_dotenv
|
4
|
+
from msfabricpysdkcore.coreapi import FabricClientCore
|
5
|
+
|
6
|
+
load_dotenv()
|
7
|
+
|
8
|
+
class TestFabricClientCore(unittest.TestCase):
|
9
|
+
|
10
|
+
def __init__(self, *args, **kwargs):
|
11
|
+
super(TestFabricClientCore, self).__init__(*args, **kwargs)
|
12
|
+
self.fc = FabricClientCore()
|
13
|
+
|
14
|
+
def test_spark_job_definitions(self):
|
15
|
+
|
16
|
+
fc = self.fc
|
17
|
+
workspace_id = 'd8a5abe0-9eed-406d-ab46-343bc57ddbe5'
|
18
|
+
|
19
|
+
datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
|
20
|
+
spark_job_definition_name = f"sjd{datetime_str}"
|
21
|
+
|
22
|
+
spark_job_definition_w_content = fc.get_spark_job_definition(workspace_id, spark_job_definition_name="helloworld")
|
23
|
+
|
24
|
+
result = fc.run_on_demand_spark_job_definition(workspace_id=workspace_id,
|
25
|
+
spark_job_definition_id=spark_job_definition_w_content.id,
|
26
|
+
job_type="sparkjob")
|
27
|
+
self.assertIsNotNone(result)
|
28
|
+
self.assertEqual(result.job_type, "sparkjob")
|
29
|
+
definition = fc.get_spark_job_definition_definition(workspace_id, spark_job_definition_w_content.id)
|
30
|
+
|
31
|
+
self.assertIsNotNone(definition)
|
32
|
+
self.assertIn("definition", definition)
|
33
|
+
definition = definition["definition"]
|
34
|
+
|
35
|
+
spark_job_definition = fc.create_spark_job_definition(workspace_id, display_name=spark_job_definition_name)
|
36
|
+
fc.update_spark_job_definition_definition(workspace_id, spark_job_definition.id, definition=definition)
|
37
|
+
spark_job_definition = fc.get_spark_job_definition(workspace_id, spark_job_definition_id=spark_job_definition.id)
|
38
|
+
self.assertEqual(spark_job_definition.display_name, spark_job_definition_name)
|
39
|
+
self.assertIsNotNone(spark_job_definition.definition)
|
40
|
+
|
41
|
+
spark_job_definitions = fc.list_spark_job_definitions(workspace_id)
|
42
|
+
spark_job_definition_names = [sjd.display_name for sjd in spark_job_definitions]
|
43
|
+
self.assertGreater(len(spark_job_definitions), 0)
|
44
|
+
self.assertIn(spark_job_definition_name, spark_job_definition_names)
|
45
|
+
|
46
|
+
sjd = fc.get_spark_job_definition(workspace_id, spark_job_definition_name=spark_job_definition_name)
|
47
|
+
self.assertIsNotNone(sjd.id)
|
48
|
+
self.assertEqual(sjd.display_name, spark_job_definition_name)
|
49
|
+
|
50
|
+
sjd = fc.update_spark_job_definition(workspace_id, sjd.id, display_name=f"{spark_job_definition_name}2")
|
51
|
+
sjd = fc.get_spark_job_definition(workspace_id, spark_job_definition_id=sjd.id)
|
52
|
+
self.assertEqual(sjd.display_name, f"{spark_job_definition_name}2")
|
53
|
+
|
54
|
+
status_code = fc.delete_spark_job_definition(workspace_id, sjd.id)
|
55
|
+
self.assertEqual(status_code, 200)
|