msfabricpysdkcore 0.2.1__py3-none-any.whl → 0.2.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 (48) hide show
  1. msfabricpysdkcore/adminapi.py +142 -2
  2. msfabricpysdkcore/coreapi.py +475 -8
  3. msfabricpysdkcore/item.py +6 -4
  4. msfabricpysdkcore/otheritems.py +93 -0
  5. msfabricpysdkcore/tests/__init__.py +0 -0
  6. msfabricpysdkcore/tests/test_admin_apis.py +174 -0
  7. msfabricpysdkcore/tests/test_connection.py +111 -0
  8. msfabricpysdkcore/tests/test_datapipelines.py +45 -0
  9. msfabricpysdkcore/tests/test_deployment_pipeline.py +63 -0
  10. msfabricpysdkcore/tests/test_domains.py +126 -0
  11. msfabricpysdkcore/tests/test_environments.py +114 -0
  12. msfabricpysdkcore/tests/test_evenhouses.py +56 -0
  13. msfabricpysdkcore/tests/test_evenstreams.py +52 -0
  14. msfabricpysdkcore/tests/test_external_data_shares.py +51 -0
  15. msfabricpysdkcore/tests/test_fabric_azure_client.py +80 -0
  16. msfabricpysdkcore/tests/test_gateways.py +99 -0
  17. msfabricpysdkcore/tests/test_git.py +66 -0
  18. msfabricpysdkcore/tests/test_graphqlapi.py +44 -0
  19. msfabricpysdkcore/tests/test_items.py +97 -0
  20. msfabricpysdkcore/tests/test_jobs.py +96 -0
  21. msfabricpysdkcore/tests/test_kql_dashboards.py +63 -0
  22. msfabricpysdkcore/tests/test_kql_queryset.py +64 -0
  23. msfabricpysdkcore/tests/test_kqldatabases.py +56 -0
  24. msfabricpysdkcore/tests/test_lakehouse.py +93 -0
  25. msfabricpysdkcore/tests/test_managed_private_endpoints.py +61 -0
  26. msfabricpysdkcore/tests/test_mirroreddatabases.py +80 -0
  27. msfabricpysdkcore/tests/test_ml_experiments.py +47 -0
  28. msfabricpysdkcore/tests/test_ml_models.py +47 -0
  29. msfabricpysdkcore/tests/test_mounted_adf.py +64 -0
  30. msfabricpysdkcore/tests/test_notebooks.py +57 -0
  31. msfabricpysdkcore/tests/test_one_lake_data_access_security.py +63 -0
  32. msfabricpysdkcore/tests/test_other_items.py +45 -0
  33. msfabricpysdkcore/tests/test_reflex.py +57 -0
  34. msfabricpysdkcore/tests/test_reports.py +56 -0
  35. msfabricpysdkcore/tests/test_semantic_model.py +56 -0
  36. msfabricpysdkcore/tests/test_shortcuts.py +60 -0
  37. msfabricpysdkcore/tests/test_spark.py +91 -0
  38. msfabricpysdkcore/tests/test_sparkjobdefinition.py +55 -0
  39. msfabricpysdkcore/tests/test_sqldatabases.py +45 -0
  40. msfabricpysdkcore/tests/test_warehouses.py +50 -0
  41. msfabricpysdkcore/tests/test_workspaces_capacities.py +159 -0
  42. msfabricpysdkcore/workspace.py +149 -5
  43. {msfabricpysdkcore-0.2.1.dist-info → msfabricpysdkcore-0.2.2.dist-info}/METADATA +31 -5
  44. msfabricpysdkcore-0.2.2.dist-info/RECORD +65 -0
  45. {msfabricpysdkcore-0.2.1.dist-info → msfabricpysdkcore-0.2.2.dist-info}/WHEEL +1 -1
  46. msfabricpysdkcore-0.2.1.dist-info/RECORD +0 -28
  47. {msfabricpysdkcore-0.2.1.dist-info → msfabricpysdkcore-0.2.2.dist-info}/LICENSE +0 -0
  48. {msfabricpysdkcore-0.2.1.dist-info → msfabricpysdkcore-0.2.2.dist-info}/top_level.txt +0 -0
@@ -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)
@@ -0,0 +1,63 @@
1
+ import unittest
2
+ from dotenv import load_dotenv
3
+ from msfabricpysdkcore.coreapi import FabricClientCore
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.fc = FabricClientCore()
12
+
13
+ def test_one_lake_data_access_security(self):
14
+
15
+ fc = self.fc
16
+
17
+ workspace_id = '63aa9e13-4912-4abe-9156-8a56e565b7a3'
18
+ item_id = "148ef579-4a5d-4048-8a48-0a703c5e3a1a"
19
+
20
+ resp = fc.list_data_access_roles(workspace_id=workspace_id, item_id=item_id)
21
+ self.assertEqual(len(resp), 2)
22
+
23
+ roles = resp[0]
24
+ etag = resp[1]
25
+
26
+ role1 = roles[1]
27
+
28
+ self.assertIn('members', role1)
29
+ self.assertIn('fabricItemMembers', role1['members'])
30
+ self.assertGreater(len(role1['members']['fabricItemMembers']), 0)
31
+ self.assertIn('itemAccess', role1['members']['fabricItemMembers'][0])
32
+
33
+ item_access = role1["members"]["fabricItemMembers"][0]['itemAccess']
34
+ item_access_old = list(item_access)
35
+ if 'ReadAll' in item_access:
36
+ item_access = ['Read', 'Write', 'Execute']
37
+ else:
38
+ item_access.append('ReadAll')
39
+
40
+ role1["members"]["fabricItemMembers"][0]['itemAccess'] = item_access
41
+ roles[1] = role1
42
+
43
+ resp = fc.create_or_update_data_access_roles(workspace_id=workspace_id,
44
+ item_id=item_id,
45
+ data_access_roles=roles,
46
+ etag_match={"If-Match":etag})
47
+
48
+
49
+ resp = fc.list_data_access_roles(workspace_id=workspace_id, item_id=item_id)
50
+ self.assertEqual(len(resp), 2)
51
+
52
+ roles = resp[0]
53
+ etag = resp[1]
54
+
55
+ role1 = roles[1]
56
+
57
+ self.assertIn('members', role1)
58
+ self.assertIn('fabricItemMembers', role1['members'])
59
+ self.assertGreater(len(role1['members']['fabricItemMembers']), 0)
60
+ self.assertIn('itemAccess', role1['members']['fabricItemMembers'][0])
61
+
62
+ item_access = role1["members"]["fabricItemMembers"][0]['itemAccess']
63
+ self.assertNotEqual(item_access, item_access_old)
@@ -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,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
+ class TestFabricClientCore(unittest.TestCase):
12
+
13
+ def __init__(self, *args, **kwargs):
14
+ super(TestFabricClientCore, self).__init__(*args, **kwargs)
15
+ #load_dotenv()
16
+ self.fc = FabricClientCore()
17
+
18
+
19
+ def test_reflex(self):
20
+
21
+ fc = self.fc
22
+ workspace_id = '63aa9e13-4912-4abe-9156-8a56e565b7a3'
23
+
24
+ datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
25
+
26
+ reflex_name = "reflex" + datetime_str
27
+
28
+ reflex = fc.create_reflex(workspace_id, display_name=reflex_name)
29
+ self.assertEqual(reflex.display_name, reflex_name)
30
+
31
+ reflexes = fc.list_reflexes(workspace_id)
32
+ reflex_names = [ref.display_name for ref in reflexes]
33
+ self.assertGreater(len(reflexes), 0)
34
+ self.assertIn(reflex_name, reflex_names)
35
+
36
+
37
+ ref = fc.get_reflex(workspace_id, reflex_name=reflex_name)
38
+ self.assertIsNotNone(ref.id)
39
+ self.assertEqual(ref.display_name, reflex_name)
40
+
41
+ ref2 = fc.update_reflex(workspace_id, ref.id, display_name=f"{reflex_name}2", return_item=True)
42
+
43
+ ref = fc.get_reflex(workspace_id, reflex_id=ref.id)
44
+ self.assertEqual(ref.display_name, f"{reflex_name}2")
45
+ self.assertEqual(ref.id, ref2.id)
46
+
47
+ response = fc.update_reflex_definition(workspace_id, reflex_id=ref.id, definition=ref.definition)
48
+ self.assertIn(response.status_code, [200, 202])
49
+
50
+ definition = fc.get_reflex_definition(workspace_id, reflex_id=ref.id)
51
+ self.assertIn("definition", definition)
52
+ self.assertIn("parts", definition["definition"])
53
+ self.assertGreaterEqual(len(definition["definition"]["parts"]), 2)
54
+
55
+ status_code = fc.delete_reflex(workspace_id, ref.id)
56
+ self.assertEqual(status_code, 200)
57
+
@@ -0,0 +1,56 @@
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
+ r2 = fc.update_report(workspace_id, r.id, display_name=f"{report_name}2", return_item=True)
52
+ self.assertEqual(r2.display_name, f"{report_name}2")
53
+ self.assertEqual(r2.id, r.id)
54
+
55
+ status_code = fc.delete_report(workspace_id, r.id)
56
+ self.assertEqual(status_code, 200)
@@ -0,0 +1,56 @@
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
+ sm2 = fc.update_semantic_model(workspace_id, sm.id, display_name=f"u{semantic_model_name}", return_item=True)
50
+
51
+ sm2 = fc.get_semantic_model(workspace_id, semantic_model_id=sm2.id)
52
+
53
+ self.assertEqual(sm2.display_name, f"u{semantic_model_name}")
54
+
55
+ status_code = fc.delete_semantic_model(workspace_id, sm.id)
56
+ self.assertEqual(status_code, 200)
@@ -0,0 +1,60 @@
1
+ import unittest
2
+ from msfabricpysdkcore.coreapi import FabricClientCore
3
+ from datetime import datetime
4
+ from dotenv import load_dotenv
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
+ #load_dotenv()
13
+ self.fc = FabricClientCore()
14
+ self.workspace_id = '63aa9e13-4912-4abe-9156-8a56e565b7a3'
15
+
16
+ self.lakehouse_target = "148ef579-4a5d-4048-8a48-0a703c5e3a1a"
17
+ self.lakehouse_shortcut = "9d1e8b07-2fea-4fc5-872c-fb586d085149"
18
+
19
+ datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
20
+ self.shortcutname = "shortcut" + datetime_str
21
+ self.path_target = "Files/to_share"
22
+ self.path_shortcut = "Files/shortcutfolder"
23
+
24
+ self.target = {'oneLake': {'itemId': self.lakehouse_target,
25
+ 'path': self.path_target,
26
+ 'workspaceId': self.workspace_id}}
27
+
28
+ def test_shortcut_end_to_end(self):
29
+
30
+ item = self.fc.create_shortcut(workspace_id=self.workspace_id,
31
+ item_id=self.lakehouse_shortcut,
32
+ path=self.path_shortcut,
33
+ name=self.shortcutname,
34
+ target=self.target)
35
+ self.assertEqual(item.name, self.shortcutname)
36
+ self.assertEqual(item.path, self.path_shortcut)
37
+ self.assertIn("oneLake", item.target)
38
+
39
+ item = self.fc.get_shortcut(workspace_id=self.workspace_id,
40
+ item_id=self.lakehouse_shortcut,
41
+ path=self.path_shortcut,
42
+ name=self.shortcutname)
43
+ self.assertEqual(item.name, self.shortcutname)
44
+ self.assertEqual(item.path, self.path_shortcut)
45
+ self.assertIn("oneLake", item.target)
46
+
47
+ shortcuts = self.fc.list_shortcuts(workspace_id=self.workspace_id,
48
+ item_id=self.lakehouse_shortcut, parent_path="Files")
49
+ self.assertGreater(len(shortcuts), 0)
50
+
51
+
52
+ status_code = self.fc.delete_shortcut(workspace_id=self.workspace_id,
53
+ item_id=self.lakehouse_shortcut,
54
+ path=self.path_shortcut,
55
+ name=self.shortcutname)
56
+
57
+ self.assertAlmostEqual(status_code, 200)
58
+
59
+ if __name__ == "__main__":
60
+ unittest.main()
@@ -0,0 +1,91 @@
1
+ import unittest
2
+ from msfabricpysdkcore.coreapi import FabricClientCore
3
+ from dotenv import load_dotenv
4
+ from datetime import datetime
5
+
6
+ load_dotenv()
7
+
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
+
17
+ def test_spark_workspace_custom_pools(self):
18
+ fc = self.fc
19
+ workspace_id = '63aa9e13-4912-4abe-9156-8a56e565b7a3'
20
+ pool_name = "pool" + datetime.now().strftime("%Y%m%d%H%M%S")
21
+ # List
22
+
23
+ pools = fc.list_workspace_custom_pools(workspace_id=workspace_id)
24
+ self.assertGreater(len(pools), 0)
25
+
26
+ pools = fc.list_workspace_custom_pools(workspace_id=workspace_id)
27
+
28
+ self.assertIn("pool1", [p.name for p in pools])
29
+ pool1 = [p for p in pools if p.name == "pool1"][0]
30
+
31
+ # Get
32
+
33
+ pool1_clone = fc.get_workspace_custom_pool(workspace_id=workspace_id, pool_id=pool1.id)
34
+ self.assertEqual(pool1_clone.id, pool1.id)
35
+ # Create
36
+
37
+ pool2 = fc.create_workspace_custom_pool(workspace_id=workspace_id,
38
+ name=pool_name,
39
+ node_family="MemoryOptimized",
40
+ node_size="Small",
41
+ auto_scale = {"enabled": True, "minNodeCount": 1, "maxNodeCount": 2},
42
+ dynamic_executor_allocation = {"enabled": True, "minExecutors": 1, "maxExecutors": 1})
43
+
44
+ self.assertEqual(pool2.name, pool_name)
45
+ self.assertEqual(pool2.node_family, "MemoryOptimized")
46
+
47
+ # Update
48
+
49
+ pool2 = fc.update_workspace_custom_pool(workspace_id=workspace_id, pool_id=pool2.id,
50
+ auto_scale = {"enabled": True, "minNodeCount": 1, "maxNodeCount": 7},
51
+ return_item=True)
52
+
53
+ self.assertEqual(pool2.auto_scale["maxNodeCount"], 7)
54
+ pool2_clone = fc.get_workspace_custom_pool(workspace_id=workspace_id, pool_id=pool2.id)
55
+ self.assertEqual(pool2_clone.auto_scale["maxNodeCount"], 7)
56
+
57
+ # Delete
58
+ status_code = fc.delete_workspace_custom_pool(workspace_id=workspace_id, pool_id=pool2.id)
59
+ self.assertEqual(status_code, 200)
60
+
61
+ pools = fc.list_workspace_custom_pools(workspace_id=workspace_id)
62
+ self.assertNotIn(pool_name, [p.name for p in pools])
63
+
64
+ def test_workspace_settings(self):
65
+ fc = self.fc
66
+ workspace_id = '63aa9e13-4912-4abe-9156-8a56e565b7a3'
67
+
68
+ # Get
69
+
70
+ settings = fc.get_spark_settings(workspace_id)
71
+ self.assertIn("automaticLog", settings)
72
+
73
+
74
+ orig_setting = settings["automaticLog"]["enabled"]
75
+ settings["automaticLog"]["enabled"] = not settings["automaticLog"]["enabled"]
76
+
77
+ # Update
78
+ settings = fc.update_spark_settings(workspace_id, automatic_log=settings["automaticLog"])
79
+ new_setting = settings["automaticLog"]["enabled"]
80
+ self.assertNotEqual(orig_setting, new_setting)
81
+ self.assertTrue(orig_setting or new_setting)
82
+ self.assertFalse(orig_setting and new_setting)
83
+
84
+ settings = fc.get_spark_settings(workspace_id)
85
+ checked_setting = settings["automaticLog"]["enabled"]
86
+ self.assertEqual(checked_setting, new_setting)
87
+
88
+
89
+ if __name__ == "__main__":
90
+ unittest.main()
91
+
@@ -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 = '63aa9e13-4912-4abe-9156-8a56e565b7a3'
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", return_item=True)
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)
@@ -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
+ class TestFabricClientCore(unittest.TestCase):
12
+
13
+ def __init__(self, *args, **kwargs):
14
+ super(TestFabricClientCore, self).__init__(*args, **kwargs)
15
+ #load_dotenv()
16
+ self.fc = FabricClientCore()
17
+
18
+
19
+ def test_sql_databases(self):
20
+
21
+ fc = self.fc
22
+ workspace_id = '63aa9e13-4912-4abe-9156-8a56e565b7a3'
23
+
24
+ # datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
25
+
26
+ # sql_db = fc.create_sql_database(workspace_id, display_name="sqldb" + datetime_str)
27
+ # self.assertEqual(sql_db.display_name, "sqldb" + datetime_str)
28
+
29
+ # sql_dbs = fc.list_sql_databases(workspace_id)
30
+ # sql_db_names = [db.display_name for db in sql_dbs]
31
+ # self.assertGreater(len(sql_dbs), 0)
32
+ # self.assertIn("sqldb" + datetime_str, sql_db_names)
33
+
34
+ # db = fc.get_sql_database(workspace_id, sql_database_name="sqldb" + datetime_str)
35
+ # self.assertIsNotNone(db.id)
36
+ # self.assertEqual(db.display_name, "sqldb" + datetime_str)
37
+
38
+ # db2 = fc.update_sql_database(workspace_id, db.id, display_name=f"sqldb{datetime_str}2", return_item=True)
39
+
40
+ # db = fc.get_sql_database(workspace_id, sql_database_id=db.id)
41
+ # self.assertEqual(db.display_name, f"sqldb{datetime_str}2")
42
+
43
+ # status_code = fc.delete_sql_database(workspace_id, db.id)
44
+ # self.assertEqual(status_code, 200)
45
+
@@ -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()