msfabricpysdkcore 0.0.13__py3-none-any.whl → 0.1.2__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 (53) hide show
  1. msfabricpysdkcore/__init__.py +2 -1
  2. msfabricpysdkcore/admin_item.py +19 -45
  3. msfabricpysdkcore/admin_workspace.py +13 -60
  4. msfabricpysdkcore/adminapi.py +401 -476
  5. msfabricpysdkcore/auth.py +10 -6
  6. msfabricpysdkcore/client.py +124 -7
  7. msfabricpysdkcore/coreapi.py +2570 -822
  8. msfabricpysdkcore/deployment_pipeline.py +34 -146
  9. msfabricpysdkcore/domain.py +20 -219
  10. msfabricpysdkcore/environment.py +13 -172
  11. msfabricpysdkcore/fabric_azure_capacity.py +77 -0
  12. msfabricpysdkcore/fabric_azure_client.py +228 -0
  13. msfabricpysdkcore/item.py +55 -331
  14. msfabricpysdkcore/job_instance.py +8 -22
  15. msfabricpysdkcore/lakehouse.py +9 -118
  16. msfabricpysdkcore/long_running_operation.py +7 -37
  17. msfabricpysdkcore/onelakeshortcut.py +7 -21
  18. msfabricpysdkcore/otheritems.py +66 -91
  19. msfabricpysdkcore/spark_custom_pool.py +7 -47
  20. msfabricpysdkcore/tests/test_admin_apis.py +9 -10
  21. msfabricpysdkcore/tests/test_datapipelines.py +15 -18
  22. msfabricpysdkcore/tests/test_deployment_pipeline.py +3 -3
  23. msfabricpysdkcore/tests/test_domains.py +6 -5
  24. msfabricpysdkcore/tests/test_environments.py +54 -5
  25. msfabricpysdkcore/tests/test_evenhouses.py +47 -0
  26. msfabricpysdkcore/tests/test_evenstreams.py +20 -20
  27. msfabricpysdkcore/tests/test_external_data_shares.py +3 -3
  28. msfabricpysdkcore/tests/test_fabric_azure_client.py +78 -0
  29. msfabricpysdkcore/tests/test_git.py +8 -9
  30. msfabricpysdkcore/tests/test_items.py +81 -0
  31. msfabricpysdkcore/tests/test_jobs.py +2 -2
  32. msfabricpysdkcore/tests/test_kql_queryset.py +49 -0
  33. msfabricpysdkcore/tests/test_kqldatabases.py +3 -3
  34. msfabricpysdkcore/tests/test_lakehouse.py +84 -0
  35. msfabricpysdkcore/tests/test_ml_experiments.py +47 -0
  36. msfabricpysdkcore/tests/test_ml_models.py +47 -0
  37. msfabricpysdkcore/tests/test_notebooks.py +57 -0
  38. msfabricpysdkcore/tests/test_one_lake_data_access_security.py +2 -4
  39. msfabricpysdkcore/tests/test_other_items.py +45 -0
  40. msfabricpysdkcore/tests/test_reports.py +52 -0
  41. msfabricpysdkcore/tests/test_semantic_model.py +50 -0
  42. msfabricpysdkcore/tests/test_shortcuts.py +4 -4
  43. msfabricpysdkcore/tests/test_spark.py +9 -9
  44. msfabricpysdkcore/tests/test_sparkjobdefinition.py +2 -2
  45. msfabricpysdkcore/tests/test_warehouses.py +50 -0
  46. msfabricpysdkcore/tests/test_workspaces_capacities.py +16 -13
  47. msfabricpysdkcore/workspace.py +397 -1163
  48. {msfabricpysdkcore-0.0.13.dist-info → msfabricpysdkcore-0.1.2.dist-info}/METADATA +72 -10
  49. msfabricpysdkcore-0.1.2.dist-info/RECORD +55 -0
  50. {msfabricpysdkcore-0.0.13.dist-info → msfabricpysdkcore-0.1.2.dist-info}/WHEEL +1 -1
  51. msfabricpysdkcore-0.0.13.dist-info/RECORD +0 -41
  52. {msfabricpysdkcore-0.0.13.dist-info → msfabricpysdkcore-0.1.2.dist-info}/LICENSE +0 -0
  53. {msfabricpysdkcore-0.0.13.dist-info → msfabricpysdkcore-0.1.2.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,47 @@
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
+ def test_ml_experiments(self):
22
+
23
+ fc = self.fc
24
+ workspace_id = '63aa9e13-4912-4abe-9156-8a56e565b7a3'
25
+ mlexperiment_name = "mlexp" + datetime.now().strftime("%Y%m%d%H%M%S")
26
+ mlexperiment_name2 = "mlexp2" + datetime.now().strftime("%Y%m%d%H%M%S")
27
+
28
+ ml_experiment = fc.create_ml_experiment(workspace_id, display_name=mlexperiment_name)
29
+ self.assertEqual(ml_experiment.display_name, mlexperiment_name)
30
+
31
+ ml_experiments = fc.list_ml_experiments(workspace_id)
32
+ ml_experiment_names = [mle.display_name for mle in ml_experiments]
33
+ self.assertGreater(len(ml_experiments), 0)
34
+ self.assertIn(mlexperiment_name, ml_experiment_names)
35
+
36
+ mle = fc.get_ml_experiment(workspace_id, ml_experiment_name=mlexperiment_name)
37
+ self.assertIsNotNone(mle.id)
38
+ self.assertEqual(mle.display_name, mlexperiment_name)
39
+
40
+ mle2 = fc.update_ml_experiment(workspace_id, mle.id, display_name=mlexperiment_name2, return_item=True)
41
+
42
+ mle = fc.get_ml_experiment(workspace_id, ml_experiment_id=mle.id)
43
+ self.assertEqual(mle.display_name, mlexperiment_name2)
44
+ self.assertEqual(mle.id, mle2.id)
45
+
46
+ status_code = fc.delete_ml_experiment(workspace_id, mle.id)
47
+ self.assertEqual(status_code, 200)
@@ -0,0 +1,47 @@
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
+ def test_ml_models(self):
22
+
23
+ fc = self.fc
24
+ workspace_id = '63aa9e13-4912-4abe-9156-8a56e565b7a3'
25
+ datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
26
+ model_name = "mlm" + datetime_str
27
+
28
+ ml_model = fc.create_ml_model(workspace_id, display_name=model_name)
29
+ self.assertEqual(ml_model.display_name, model_name)
30
+
31
+ ml_models = fc.list_ml_models(workspace_id)
32
+ ml_model_names = [ml.display_name for ml in ml_models]
33
+ self.assertGreater(len(ml_models), 0)
34
+ self.assertIn(model_name, ml_model_names)
35
+
36
+ mlm = fc.get_ml_model(workspace_id, ml_model_name=model_name)
37
+ self.assertIsNotNone(mlm.id)
38
+ self.assertEqual(mlm.display_name, model_name)
39
+
40
+ mlm2 = fc.update_ml_model(workspace_id=workspace_id,ml_model_id= mlm.id, description=model_name, return_item=True)
41
+
42
+ mlm = fc.get_ml_model(workspace_id, ml_model_id=mlm.id)
43
+ self.assertEqual(mlm.description, model_name)
44
+ self.assertEqual(mlm.id, mlm2.id)
45
+
46
+ status_code = fc.delete_ml_model(workspace_id, mlm.id)
47
+ self.assertEqual(status_code, 200)
@@ -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
+ 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
+ def test_notebooks(self):
22
+
23
+ fc = self.fc
24
+ workspace_id = '63aa9e13-4912-4abe-9156-8a56e565b7a3'
25
+
26
+ notebook_name = "notebook" + datetime.now().strftime("%Y%m%d%H%M%S")
27
+
28
+ notebook_w_content = fc.get_notebook(workspace_id, notebook_name="HelloWorld")
29
+
30
+ definition = fc.get_notebook_definition(workspace_id, notebook_w_content.id)
31
+
32
+ self.assertIsNotNone(definition)
33
+ self.assertIn("definition", definition)
34
+ definition = definition["definition"]
35
+ notebook = fc.create_notebook(workspace_id, definition=definition, display_name=notebook_name)
36
+ fc.update_notebook_definition(workspace_id, notebook.id, definition=definition)
37
+ notebook = fc.get_notebook(workspace_id, notebook_id=notebook.id)
38
+ self.assertEqual(notebook.display_name, notebook_name)
39
+ self.assertIsNotNone(notebook.definition)
40
+
41
+ notebooks = fc.list_notebooks(workspace_id)
42
+ notebook_names = [nb.display_name for nb in notebooks]
43
+ self.assertGreater(len(notebooks), 0)
44
+ self.assertIn(notebook_name, notebook_names)
45
+
46
+ nb = fc.get_notebook(workspace_id, notebook_name=notebook_name)
47
+ self.assertIsNotNone(nb.id)
48
+ self.assertEqual(nb.display_name, notebook_name)
49
+
50
+ nb2 = fc.update_notebook(workspace_id, notebook_id=nb.id, display_name=f"{notebook_name}2", return_item=True)
51
+
52
+ nb = fc.get_notebook(workspace_id, notebook_id=nb.id)
53
+ self.assertEqual(nb.display_name, f"{notebook_name}2")
54
+ self.assertEqual(nb.id, nb2.id)
55
+
56
+ status_code = fc.delete_notebook(workspace_id, nb.id)
57
+ self.assertEqual(status_code, 200)
@@ -14,8 +14,8 @@ class TestFabricClientCore(unittest.TestCase):
14
14
 
15
15
  fc = self.fc
16
16
 
17
- workspace_id = "d8a5abe0-9eed-406d-ab46-343bc57ddbe5"
18
- item_id = "50368cf3-29e7-4a09-aaf0-289fb5748364"
17
+ workspace_id = '63aa9e13-4912-4abe-9156-8a56e565b7a3'
18
+ item_id = "148ef579-4a5d-4048-8a48-0a703c5e3a1a"
19
19
 
20
20
  resp = fc.list_data_access_roles(workspace_id=workspace_id, item_id=item_id)
21
21
  self.assertEqual(len(resp), 2)
@@ -30,8 +30,6 @@ class TestFabricClientCore(unittest.TestCase):
30
30
  self.assertGreater(len(role1['members']['fabricItemMembers']), 0)
31
31
  self.assertIn('itemAccess', role1['members']['fabricItemMembers'][0])
32
32
 
33
-
34
-
35
33
  item_access = role1["members"]["fabricItemMembers"][0]['itemAccess']
36
34
  item_access_old = list(item_access)
37
35
  if 'ReadAll' in item_access:
@@ -0,0 +1,45 @@
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
+ def test_list_other_items(self):
21
+
22
+ fc = self.fc
23
+
24
+ workspace_id = '63aa9e13-4912-4abe-9156-8a56e565b7a3'
25
+
26
+ list_dashboards = fc.list_dashboards(workspace_id)
27
+ dashboard_names = [dashboard.display_name for dashboard in list_dashboards]
28
+ self.assertGreater(len(list_dashboards), 0)
29
+ self.assertIn("dashboard1", dashboard_names)
30
+
31
+ # list_datamarts = fc.list_datamarts(workspace_id)
32
+ # datamart_names = [datamart.display_name for datamart in list_datamarts]
33
+ # self.assertGreater(len(list_datamarts), 0)
34
+ # self.assertIn("datamart1", datamart_names)
35
+
36
+ list_sql_endpoints = fc.list_sql_endpoints(workspace_id)
37
+ sqlendpoint_names = [sqlendpoint.display_name for sqlendpoint in list_sql_endpoints]
38
+ self.assertGreater(len(list_sql_endpoints), 0)
39
+ self.assertIn("lakelhousewlabels", sqlendpoint_names)
40
+
41
+ # list_mirrored_warehouses = fc.list_mirrored_warehouses(self.workspace_id)
42
+ # self.assertGreater(len(list_mirrored_warehouses), 0)
43
+
44
+ # list_paginated_reports = fc.list_paginated_reports(self.workspace_id)
45
+ # self.assertGreater(len(list_paginated_reports), 0)
@@ -0,0 +1,52 @@
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
+ def test_reports(self):
22
+
23
+ fc = self.fc
24
+ workspace_id = '63aa9e13-4912-4abe-9156-8a56e565b7a3'
25
+
26
+ report_name = "report1234"
27
+
28
+ report_w_content = fc.get_report(workspace_id, report_name="HelloWorldReport")
29
+
30
+ definition = fc.get_report_definition(workspace_id, report_w_content.id)
31
+
32
+ self.assertIsNotNone(definition)
33
+ self.assertIn("definition", definition)
34
+ definition = definition["definition"]
35
+
36
+ report = fc.create_report(workspace_id, display_name=report_name, definition=definition)
37
+ fc.update_report_definition(workspace_id, report.id, definition=definition)
38
+ report = fc.get_report(workspace_id, report_id=report.id)
39
+ self.assertEqual(report.display_name, report_name)
40
+ self.assertIsNotNone(report.definition)
41
+
42
+ reports = fc.list_reports(workspace_id)
43
+ report_names = [r.display_name for r in reports]
44
+ self.assertGreater(len(reports), 0)
45
+ self.assertIn(report_name, report_names)
46
+
47
+ r = fc.get_report(workspace_id, report_name=report_name)
48
+ self.assertIsNotNone(r.id)
49
+ self.assertEqual(r.display_name, report_name)
50
+
51
+ status_code = fc.delete_report(workspace_id, r.id)
52
+ self.assertEqual(status_code, 200)
@@ -0,0 +1,50 @@
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
+ def test_semantic_models(self):
21
+
22
+ fc = self.fc
23
+ workspace_id = '63aa9e13-4912-4abe-9156-8a56e565b7a3'
24
+ datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
25
+ semantic_model_name = "semanticmodel" + datetime_str
26
+
27
+ semantic_model_w_content = fc.get_semantic_model(workspace_id, semantic_model_name="Table")
28
+
29
+ definition = fc.get_semantic_model_definition(workspace_id, semantic_model_w_content.id)
30
+
31
+ self.assertIsNotNone(definition)
32
+ self.assertIn("definition", definition)
33
+ definition = definition["definition"]
34
+ semantic_model = fc.create_semantic_model(workspace_id, display_name=semantic_model_name, definition=definition)
35
+ fc.update_semantic_model_definition(workspace_id, semantic_model.id, definition=definition)
36
+ semantic_model = fc.get_semantic_model(workspace_id, semantic_model_id=semantic_model.id)
37
+ self.assertEqual(semantic_model.display_name, semantic_model_name)
38
+ self.assertIsNotNone(semantic_model.definition)
39
+
40
+ semantic_models = fc.list_semantic_models(workspace_id)
41
+ semantic_model_names = [sm.display_name for sm in semantic_models]
42
+ self.assertGreater(len(semantic_models), 0)
43
+ self.assertIn(semantic_model_name, semantic_model_names)
44
+
45
+ sm = fc.get_semantic_model(workspace_id, semantic_model_name=semantic_model_name)
46
+ self.assertIsNotNone(sm.id)
47
+ self.assertEqual(sm.display_name, semantic_model_name)
48
+
49
+ status_code = fc.delete_semantic_model(workspace_id, sm.id)
50
+ self.assertEqual(status_code, 200)
@@ -11,14 +11,14 @@ class TestFabricClientCore(unittest.TestCase):
11
11
  super(TestFabricClientCore, self).__init__(*args, **kwargs)
12
12
  #load_dotenv()
13
13
  self.fc = FabricClientCore()
14
- self.workspace_id = "c3352d34-0b54-40f0-b204-cc964b1beb8d"
14
+ self.workspace_id = '63aa9e13-4912-4abe-9156-8a56e565b7a3'
15
15
 
16
- self.lakehouse_target = "cb4ca0b5-b53b-4879-b206-a53c35cbff55"
17
- self.lakehouse_shortcut = "e2c09c89-bf97-4f71-bdeb-36338795ec36"
16
+ self.lakehouse_target = "148ef579-4a5d-4048-8a48-0a703c5e3a1a"
17
+ self.lakehouse_shortcut = "9d1e8b07-2fea-4fc5-872c-fb586d085149"
18
18
 
19
19
  datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
20
20
  self.shortcutname = "shortcut" + datetime_str
21
- self.path_target = "Files/folder1"
21
+ self.path_target = "Files/to_share"
22
22
  self.path_shortcut = "Files/shortcutfolder"
23
23
 
24
24
  self.target = {'oneLake': {'itemId': self.lakehouse_target,
@@ -1,6 +1,7 @@
1
1
  import unittest
2
2
  from msfabricpysdkcore.coreapi import FabricClientCore
3
3
  from dotenv import load_dotenv
4
+ from datetime import datetime
4
5
 
5
6
  load_dotenv()
6
7
 
@@ -11,14 +12,12 @@ class TestFabricClientCore(unittest.TestCase):
11
12
  super(TestFabricClientCore, self).__init__(*args, **kwargs)
12
13
  #load_dotenv()
13
14
  self.fc = FabricClientCore()
14
- ws = self.fc.get_workspace_by_name(name="testitems")
15
- self.workspace_id = ws.id
16
15
 
17
16
 
18
17
  def test_spark_workspace_custom_pools(self):
19
18
  fc = self.fc
20
- workspace_id = self.workspace_id
21
-
19
+ workspace_id = '63aa9e13-4912-4abe-9156-8a56e565b7a3'
20
+ pool_name = "pool" + datetime.now().strftime("%Y%m%d%H%M%S")
22
21
  # List
23
22
 
24
23
  pools = fc.list_workspace_custom_pools(workspace_id=workspace_id)
@@ -36,19 +35,20 @@ class TestFabricClientCore(unittest.TestCase):
36
35
  # Create
37
36
 
38
37
  pool2 = fc.create_workspace_custom_pool(workspace_id=workspace_id,
39
- name="pool2",
38
+ name=pool_name,
40
39
  node_family="MemoryOptimized",
41
40
  node_size="Small",
42
41
  auto_scale = {"enabled": True, "minNodeCount": 1, "maxNodeCount": 2},
43
42
  dynamic_executor_allocation = {"enabled": True, "minExecutors": 1, "maxExecutors": 1})
44
43
 
45
- self.assertEqual(pool2.name, "pool2")
44
+ self.assertEqual(pool2.name, pool_name)
46
45
  self.assertEqual(pool2.node_family, "MemoryOptimized")
47
46
 
48
47
  # Update
49
48
 
50
49
  pool2 = fc.update_workspace_custom_pool(workspace_id=workspace_id, pool_id=pool2.id,
51
- auto_scale = {"enabled": True, "minNodeCount": 1, "maxNodeCount": 7})
50
+ auto_scale = {"enabled": True, "minNodeCount": 1, "maxNodeCount": 7},
51
+ return_item=True)
52
52
 
53
53
  self.assertEqual(pool2.auto_scale["maxNodeCount"], 7)
54
54
  pool2_clone = fc.get_workspace_custom_pool(workspace_id=workspace_id, pool_id=pool2.id)
@@ -59,11 +59,11 @@ class TestFabricClientCore(unittest.TestCase):
59
59
  self.assertEqual(status_code, 200)
60
60
 
61
61
  pools = fc.list_workspace_custom_pools(workspace_id=workspace_id)
62
- self.assertNotIn("pool2", [p.name for p in pools])
62
+ self.assertNotIn(pool_name, [p.name for p in pools])
63
63
 
64
64
  def test_workspace_settings(self):
65
65
  fc = self.fc
66
- workspace_id = self.workspace_id
66
+ workspace_id = '63aa9e13-4912-4abe-9156-8a56e565b7a3'
67
67
 
68
68
  # Get
69
69
 
@@ -14,7 +14,7 @@ class TestFabricClientCore(unittest.TestCase):
14
14
  def test_spark_job_definitions(self):
15
15
 
16
16
  fc = self.fc
17
- workspace_id = 'd8a5abe0-9eed-406d-ab46-343bc57ddbe5'
17
+ workspace_id = '63aa9e13-4912-4abe-9156-8a56e565b7a3'
18
18
 
19
19
  datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
20
20
  spark_job_definition_name = f"sjd{datetime_str}"
@@ -47,7 +47,7 @@ class TestFabricClientCore(unittest.TestCase):
47
47
  self.assertIsNotNone(sjd.id)
48
48
  self.assertEqual(sjd.display_name, spark_job_definition_name)
49
49
 
50
- sjd = fc.update_spark_job_definition(workspace_id, sjd.id, display_name=f"{spark_job_definition_name}2")
50
+ sjd = fc.update_spark_job_definition(workspace_id, sjd.id, display_name=f"{spark_job_definition_name}2", return_item=True)
51
51
  sjd = fc.get_spark_job_definition(workspace_id, spark_job_definition_id=sjd.id)
52
52
  self.assertEqual(sjd.display_name, f"{spark_job_definition_name}2")
53
53
 
@@ -0,0 +1,50 @@
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
+ def test_warehouses(self):
22
+
23
+ fc = self.fc
24
+ workspace_id = '63aa9e13-4912-4abe-9156-8a56e565b7a3'
25
+
26
+ datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
27
+ warehouse1 = f"wh{datetime_str}"
28
+ warehouse = fc.create_warehouse(workspace_id, display_name=warehouse1)
29
+ self.assertIsNotNone(warehouse.id)
30
+
31
+ warehouses = fc.list_warehouses(workspace_id)
32
+ warehouse_names = [wh.display_name for wh in warehouses]
33
+ self.assertGreater(len(warehouses), 0)
34
+ self.assertIn(warehouse1, warehouse_names)
35
+
36
+ warehouse = fc.get_warehouse(workspace_id, warehouse_name=warehouse1)
37
+ self.assertIsNotNone(warehouse.id)
38
+ self.assertEqual(warehouse.display_name, warehouse1)
39
+
40
+ warehouse2 = fc.update_warehouse(workspace_id, warehouse.id, display_name=f"{warehouse1}2", return_item=True)
41
+ warehouse = fc.get_warehouse(workspace_id, warehouse_id=warehouse.id)
42
+ self.assertEqual(warehouse.display_name, f"{warehouse1}2")
43
+ self.assertEqual(warehouse.id, warehouse2.id)
44
+
45
+ status_code = fc.delete_warehouse(workspace_id, warehouse.id)
46
+ self.assertEqual(status_code, 200)
47
+
48
+
49
+ if __name__ == "__main__":
50
+ unittest.main()
@@ -16,6 +16,9 @@ class TestFabricClientCore(unittest.TestCase):
16
16
  fc = self.fc
17
17
  datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
18
18
  display_name = "testws" + datetime_str
19
+
20
+ datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
21
+ workspace_name_new = "newws" + datetime_str
19
22
  ws_created = fc.create_workspace(display_name=display_name,
20
23
  description="test workspace",
21
24
  exists_ok=False)
@@ -29,7 +32,7 @@ class TestFabricClientCore(unittest.TestCase):
29
32
  # def test_assign_to_capacity(self):
30
33
 
31
34
  result_status_code = fc.assign_to_capacity(workspace_id=ws.id,
32
- capacity_id="41cb829c-c231-4e9f-b4fc-f9042a6f9840")
35
+ capacity_id="840a6c1e-5289-4094-bbc8-716daabaeeba")
33
36
  self.assertEqual(result_status_code, 202)
34
37
 
35
38
 
@@ -41,7 +44,7 @@ class TestFabricClientCore(unittest.TestCase):
41
44
 
42
45
  for ws in result:
43
46
  if ws.display_name == display_name:
44
- self.assertEqual(ws.capacity_id, "41cb829c-c231-4e9f-b4fc-f9042a6f9840")
47
+ self.assertEqual(ws.capacity_id, "840a6c1e-5289-4094-bbc8-716daabaeeba")
45
48
 
46
49
 
47
50
  # def test_get_workspace_by_name(self):
@@ -61,7 +64,7 @@ class TestFabricClientCore(unittest.TestCase):
61
64
 
62
65
  # def test_add_role_assignment(self):
63
66
  result_status = fc.add_workspace_role_assignment(workspace_id = ws.id,
64
- principal = {"id" : "fe9dee5d-d244-4c93-8ea1-d5e6a2225c69",
67
+ principal = {"id" : "755f273c-98f8-408c-a886-691794938bd8",
65
68
  "type" : "ServicePrincipal"},
66
69
  role = 'Member')
67
70
 
@@ -77,7 +80,7 @@ class TestFabricClientCore(unittest.TestCase):
77
80
  # Get get_workspace_role_assignment
78
81
 
79
82
  result = fc.get_workspace_role_assignment(workspace_id = ws.id,
80
- workspace_role_assignment_id = "fe9dee5d-d244-4c93-8ea1-d5e6a2225c69")
83
+ workspace_role_assignment_id = "755f273c-98f8-408c-a886-691794938bd8")
81
84
 
82
85
  self.assertEqual(result["role"], "Member")
83
86
 
@@ -85,7 +88,7 @@ class TestFabricClientCore(unittest.TestCase):
85
88
 
86
89
  result_status_code = fc.update_workspace_role_assignment(workspace_id = ws.id,
87
90
  role = "Contributor",
88
- workspace_role_assignment_id= "fe9dee5d-d244-4c93-8ea1-d5e6a2225c69")
91
+ workspace_role_assignment_id= "755f273c-98f8-408c-a886-691794938bd8")
89
92
 
90
93
  self.assertEqual(result_status_code, 200)
91
94
 
@@ -97,7 +100,7 @@ class TestFabricClientCore(unittest.TestCase):
97
100
 
98
101
  # def test_delete_role_assignment(self):
99
102
  result_status_code = fc.delete_workspace_role_assignment(workspace_id = ws.id,
100
- workspace_role_assignment_id = "fe9dee5d-d244-4c93-8ea1-d5e6a2225c69")
103
+ workspace_role_assignment_id = "755f273c-98f8-408c-a886-691794938bd8")
101
104
  self.assertEqual(result_status_code, 200)
102
105
 
103
106
  # def test_get_workspace_role_assignments(self):
@@ -109,12 +112,12 @@ class TestFabricClientCore(unittest.TestCase):
109
112
 
110
113
  # def test_update_workspace(self):
111
114
  ws_updated = fc.update_workspace(workspace_id=ws.id,
112
- display_name="newn912389u8293",
115
+ display_name=workspace_name_new,
113
116
  description="new description")
114
- self.assertEqual(ws_updated.display_name, "newn912389u8293")
117
+ self.assertEqual(ws_updated.display_name, workspace_name_new)
115
118
  self.assertEqual(ws_updated.description, "new description")
116
119
  ws = fc.get_workspace_by_id(id = ws.id)
117
- self.assertEqual(ws.display_name, "newn912389u8293")
120
+ self.assertEqual(ws.display_name, workspace_name_new)
118
121
  self.assertEqual(ws.description, "new description")
119
122
 
120
123
  # def test_unassign_from_capacity(self):
@@ -131,18 +134,18 @@ class TestFabricClientCore(unittest.TestCase):
131
134
 
132
135
 
133
136
  # def test_delete_workspace(self):
134
- result_status = fc.delete_workspace(display_name="newn912389u8293")
137
+ result_status = fc.delete_workspace(display_name=workspace_name_new)
135
138
  self.assertEqual(result_status, 200)
136
139
 
137
140
  def test_list_capacities(self):
138
141
  result = self.fc.list_capacities()
139
142
  self.assertTrue(len(result) > 0)
140
143
  cap_ids = [cap.id for cap in result]
141
- self.assertIn("41cb829c-c231-4e9f-b4fc-f9042a6f9840", cap_ids)
144
+ self.assertIn("c861242b-c4ac-4e3a-9a21-13f65d9b17b2", cap_ids)
142
145
 
143
146
  def test_get_capacity(self):
144
- capacity = self.fc.get_capacity(capacity_id = "41cb829c-c231-4e9f-b4fc-f9042a6f9840")
145
- self.assertEqual(capacity.id, "41cb829c-c231-4e9f-b4fc-f9042a6f9840")
147
+ capacity = self.fc.get_capacity(capacity_id = "c861242b-c4ac-4e3a-9a21-13f65d9b17b2")
148
+ self.assertEqual(capacity.id, "c861242b-c4ac-4e3a-9a21-13f65d9b17b2")
146
149
 
147
150
  cap = self.fc.get_capacity(capacity_name= capacity.display_name)
148
151