msfabricpysdkcore 0.0.13__py3-none-any.whl → 0.1.1__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 (43) hide show
  1. msfabricpysdkcore/admin_item.py +18 -44
  2. msfabricpysdkcore/admin_workspace.py +13 -60
  3. msfabricpysdkcore/adminapi.py +398 -475
  4. msfabricpysdkcore/client.py +115 -1
  5. msfabricpysdkcore/coreapi.py +2566 -821
  6. msfabricpysdkcore/deployment_pipeline.py +34 -146
  7. msfabricpysdkcore/domain.py +20 -219
  8. msfabricpysdkcore/environment.py +13 -172
  9. msfabricpysdkcore/item.py +55 -331
  10. msfabricpysdkcore/job_instance.py +8 -22
  11. msfabricpysdkcore/lakehouse.py +9 -118
  12. msfabricpysdkcore/long_running_operation.py +7 -37
  13. msfabricpysdkcore/onelakeshortcut.py +7 -21
  14. msfabricpysdkcore/otheritems.py +66 -91
  15. msfabricpysdkcore/spark_custom_pool.py +7 -47
  16. msfabricpysdkcore/tests/test_admin_apis.py +1 -1
  17. msfabricpysdkcore/tests/test_datapipelines.py +14 -17
  18. msfabricpysdkcore/tests/test_deployment_pipeline.py +3 -3
  19. msfabricpysdkcore/tests/test_domains.py +4 -3
  20. msfabricpysdkcore/tests/test_environments.py +51 -2
  21. msfabricpysdkcore/tests/test_evenhouses.py +48 -0
  22. msfabricpysdkcore/tests/test_evenstreams.py +1 -1
  23. msfabricpysdkcore/tests/test_items.py +80 -0
  24. msfabricpysdkcore/tests/test_kql_queryset.py +50 -0
  25. msfabricpysdkcore/tests/test_kqldatabases.py +1 -1
  26. msfabricpysdkcore/tests/test_lakehouse.py +86 -0
  27. msfabricpysdkcore/tests/test_ml_experiments.py +48 -0
  28. msfabricpysdkcore/tests/test_ml_models.py +48 -0
  29. msfabricpysdkcore/tests/test_notebooks.py +58 -0
  30. msfabricpysdkcore/tests/test_other_items.py +46 -0
  31. msfabricpysdkcore/tests/test_reports.py +53 -0
  32. msfabricpysdkcore/tests/test_semantic_model.py +51 -0
  33. msfabricpysdkcore/tests/test_spark.py +7 -5
  34. msfabricpysdkcore/tests/test_sparkjobdefinition.py +1 -1
  35. msfabricpysdkcore/tests/test_warehouses.py +51 -0
  36. msfabricpysdkcore/tests/test_workspaces_capacities.py +7 -4
  37. msfabricpysdkcore/workspace.py +397 -1163
  38. {msfabricpysdkcore-0.0.13.dist-info → msfabricpysdkcore-0.1.1.dist-info}/METADATA +9 -8
  39. msfabricpysdkcore-0.1.1.dist-info/RECORD +52 -0
  40. {msfabricpysdkcore-0.0.13.dist-info → msfabricpysdkcore-0.1.1.dist-info}/WHEEL +1 -1
  41. msfabricpysdkcore-0.0.13.dist-info/RECORD +0 -41
  42. {msfabricpysdkcore-0.0.13.dist-info → msfabricpysdkcore-0.1.1.dist-info}/LICENSE +0 -0
  43. {msfabricpysdkcore-0.0.13.dist-info → msfabricpysdkcore-0.1.1.dist-info}/top_level.txt +0 -0
@@ -30,7 +30,7 @@ class TestFabricClientCore(unittest.TestCase):
30
30
  self.assertIsNotNone(env.id)
31
31
  self.assertEqual(env.display_name, env_name)
32
32
  new_name = env_name + "2"
33
- env2 = fc.update_environment(workspace_id, env.id, display_name=new_name)
33
+ env2 = fc.update_environment(workspace_id, env.id, display_name=new_name, return_item=True)
34
34
 
35
35
  env = fc.get_environment(workspace_id, environment_id=env.id)
36
36
  self.assertEqual(env.display_name, new_name)
@@ -62,4 +62,53 @@ class TestFabricClientCore(unittest.TestCase):
62
62
  updated_settings = fc.get_staging_settings(workspace_id=workspace_id, environment_id=environment_id)
63
63
  self.assertIn("instancePool", updated_settings)
64
64
  self.assertIn("dynamicExecutorAllocation", updated_settings)
65
- self.assertEqual(updated_settings["driverCores"], driver_cores)
65
+ self.assertEqual(updated_settings["driverCores"], driver_cores)
66
+
67
+
68
+ def test_environment_spark_libraries(self):
69
+ fc = self.fc
70
+ workspace_id = 'd8a5abe0-9eed-406d-ab46-343bc57ddbe5'
71
+ environment_id = 'fae6d1a7-d671-4091-89b1-f42626deb56f'
72
+
73
+ resp = fc.get_published_libraries(workspace_id, environment_id)
74
+ self.assertIn('customLibraries', resp)
75
+ self.assertIn('wheelFiles', resp['customLibraries'])
76
+ self.assertIn('msfabricpysdkcore-0.0.13-py3-none-any.whl', resp['customLibraries']['wheelFiles'])
77
+
78
+ resp = fc.upload_staging_library(workspace_id, environment_id, 'dummy.whl')
79
+ self.assertEqual(resp.status_code, 200)
80
+
81
+ resp = fc.get_staging_libraries(workspace_id, environment_id)
82
+
83
+ self.assertIn('customLibraries', resp)
84
+ self.assertIn('wheelFiles', resp['customLibraries'])
85
+ self.assertIn('dummy.whl', resp['customLibraries']['wheelFiles'])
86
+ self.assertIn('staging.whl', resp['customLibraries']['wheelFiles'])
87
+
88
+
89
+ resp = fc.publish_environment(workspace_id, environment_id)
90
+ self.assertIn('publishDetails', resp)
91
+ self.assertIn('state', resp['publishDetails'])
92
+ self.assertEqual(resp['publishDetails']['state'], 'running')
93
+
94
+
95
+ resp = fc.cancel_publish(workspace_id, environment_id)
96
+ self.assertIn('publishDetails', resp)
97
+ self.assertIn('state', resp['publishDetails'])
98
+ self.assertEqual(resp['publishDetails']['state'], 'cancelled')
99
+
100
+ resp = fc.delete_staging_library(workspace_id, environment_id, 'dummy.whl')
101
+ self.assertEqual(resp.status_code, 200)
102
+
103
+ resp = fc.get_staging_libraries(workspace_id, environment_id)
104
+
105
+ self.assertIn('customLibraries', resp)
106
+ self.assertIn('wheelFiles', resp['customLibraries'])
107
+ self.assertNotIn('dummy.whl', resp['customLibraries']['wheelFiles'])
108
+ self.assertIn('staging.whl', resp['customLibraries']['wheelFiles'])
109
+
110
+
111
+
112
+
113
+
114
+
@@ -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
+ self.workspace_id = "c3352d34-0b54-40f0-b204-cc964b1beb8d"
16
+
17
+ datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
18
+ self.item_name = "testitem" + datetime_str
19
+ self.item_type = "Notebook"
20
+
21
+
22
+
23
+ def test_eventhouses(self):
24
+
25
+ fc = self.fc
26
+ workspace_id = 'd8a5abe0-9eed-406d-ab46-343bc57ddbe5'
27
+ datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
28
+ eventhouse_name = "evh" + datetime_str
29
+ eventhouse1 = fc.create_eventhouse(workspace_id, display_name=eventhouse_name)
30
+ self.assertEqual(eventhouse1.display_name, eventhouse_name)
31
+
32
+ eventhouses = fc.list_eventhouses(workspace_id)
33
+ eventhouse_names = [eh.display_name for eh in eventhouses]
34
+ self.assertGreater(len(eventhouses), 0)
35
+ self.assertIn(eventhouse_name, eventhouse_names)
36
+
37
+ eh = fc.get_eventhouse(workspace_id, eventhouse_name=eventhouse_name)
38
+ self.assertIsNotNone(eh.id)
39
+ self.assertEqual(eh.display_name, eventhouse_name)
40
+ new_display_name = eventhouse_name + "2"
41
+ eh2 = fc.update_eventhouse(workspace_id, eh.id, display_name=new_display_name, return_item=True)
42
+
43
+ eh = fc.get_eventhouse(workspace_id, eventhouse_id=eh.id)
44
+ self.assertEqual(eh.display_name, new_display_name)
45
+ self.assertEqual(eh.id, eh2.id)
46
+
47
+ status_code = fc.delete_eventhouse(workspace_id, eh.id)
48
+ self.assertEqual(status_code, 200)
@@ -34,7 +34,7 @@ class TestFabricClientCore(unittest.TestCase):
34
34
  self.assertIsNotNone(es.id)
35
35
  self.assertEqual(es.display_name, es_name)
36
36
 
37
- es2 = fc.update_eventstream(workspace_id, es.id, display_name=f"{es_name}2")
37
+ es2 = fc.update_eventstream(workspace_id, es.id, display_name=f"{es_name}2", return_item=True)
38
38
 
39
39
  es = fc.get_eventstream(workspace_id, eventstream_id=es.id)
40
40
  self.assertEqual(es.display_name, f"{es_name}2")
@@ -0,0 +1,80 @@
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
+ self.workspace_id = "c3352d34-0b54-40f0-b204-cc964b1beb8d"
16
+
17
+ datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
18
+ self.item_name = "testitem" + datetime_str
19
+ self.item_type = "Notebook"
20
+
21
+ def test_item_end_to_end(self):
22
+
23
+ item = self.fc.create_item(display_name=self.item_name, type=self.item_type, workspace_id=self.workspace_id)
24
+ self.assertEqual(item.display_name, self.item_name)
25
+ self.assertEqual(item.type, self.item_type)
26
+ self.assertEqual(item.workspace_id, self.workspace_id)
27
+ self.assertEqual(item.description, "")
28
+
29
+ item = self.fc.get_item(workspace_id=self.workspace_id, item_id=item.id)
30
+ item_ = self.fc.get_item(workspace_id=self.workspace_id,
31
+ item_name=self.item_name, item_type=self.item_type)
32
+ self.assertEqual(item.id, item_.id)
33
+ self.assertEqual(item.display_name, self.item_name)
34
+ self.assertEqual(item.type, self.item_type)
35
+ self.assertEqual(item.workspace_id, self.workspace_id)
36
+ self.assertEqual(item.description, "")
37
+
38
+ item_list = self.fc.list_items(workspace_id=self.workspace_id)
39
+ self.assertTrue(len(item_list) > 0)
40
+
41
+ item_ids = [item_.id for item_ in item_list]
42
+ self.assertIn(item.id, item_ids)
43
+
44
+ self.fc.update_item(workspace_id=self.workspace_id, item_id=item.id, display_name=f"u{self.item_name}", return_item=True)
45
+ item = self.fc.get_item(workspace_id=self.workspace_id, item_id=item.id)
46
+ self.assertEqual(item.display_name, f"u{self.item_name}")
47
+
48
+ status_code = self.fc.delete_item(workspace_id=self.workspace_id, item_id=item.id)
49
+
50
+ self.assertAlmostEqual(status_code, 200)
51
+
52
+ def test_item_definition(self):
53
+
54
+ sjd = self.fc.get_item(workspace_id=self.workspace_id, item_name="blubb", item_type="SparkJobDefinition")
55
+ self.assertIsNotNone(sjd.definition)
56
+ datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
57
+ blubb2 = "blubb2" + datetime_str
58
+ blubb3 = "blubb3" + datetime_str
59
+ blubb2 = self.fc.create_item(display_name=blubb2, type="SparkJobDefinition", workspace_id=self.workspace_id,
60
+ definition=sjd.definition)
61
+
62
+ blubb3 = self.fc.create_item(display_name=blubb3, type="SparkJobDefinition", workspace_id=self.workspace_id)
63
+
64
+ response = self.fc.update_item_definition(workspace_id=self.workspace_id,
65
+ item_id=blubb3.id, definition=sjd.definition)
66
+
67
+ self.assertEqual(response.status_code, 200)
68
+ blubb3 = self.fc.get_item(workspace_id=self.workspace_id, item_id=blubb3.id)
69
+ self.assertEqual(blubb3.definition, sjd.definition)
70
+
71
+ self.assertNotEqual(blubb2.id, sjd.id)
72
+ self.assertEqual(blubb2.definition, sjd.definition)
73
+ self.assertNotEqual(blubb2.id, blubb3.id)
74
+
75
+ blubb2.delete()
76
+ blubb3.delete()
77
+
78
+
79
+ if __name__ == "__main__":
80
+ unittest.main()
@@ -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
+ self.workspace_id = "c3352d34-0b54-40f0-b204-cc964b1beb8d"
16
+
17
+ datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
18
+ self.item_name = "testitem" + datetime_str
19
+ self.item_type = "Notebook"
20
+
21
+ def test_kql_querysets(self):
22
+
23
+ fc = self.fc
24
+ workspace_id = 'd8a5abe0-9eed-406d-ab46-343bc57ddbe5'
25
+
26
+ kql_queryset_name = "kqlqueryset1"
27
+
28
+ kql_querysets = fc.list_kql_querysets(workspace_id)
29
+ kql_queryset_names = [kqlq.display_name for kqlq in kql_querysets]
30
+ self.assertGreater(len(kql_querysets), 0)
31
+ self.assertIn(kql_queryset_name, kql_queryset_names)
32
+
33
+ kqlq = fc.get_kql_queryset(workspace_id, kql_queryset_name=kql_queryset_name)
34
+ self.assertIsNotNone(kqlq.id)
35
+ self.assertEqual(kqlq.display_name, kql_queryset_name)
36
+
37
+ kqlq2 = fc.update_kql_queryset(workspace_id, kqlq.id, display_name=f"{kql_queryset_name}2", return_item=True)
38
+
39
+ kqlq = fc.get_kql_queryset(workspace_id, kql_queryset_id=kqlq.id)
40
+ self.assertEqual(kqlq.display_name, f"{kql_queryset_name}2")
41
+ self.assertEqual(kqlq.id, kqlq2.id)
42
+
43
+ kqlq2 = fc.update_kql_queryset(workspace_id, kqlq.id, display_name=kql_queryset_name, return_item=True)
44
+
45
+ kqlq = fc.get_kql_queryset(workspace_id, kql_queryset_id=kqlq.id)
46
+ self.assertEqual(kqlq.display_name, kql_queryset_name)
47
+ self.assertEqual(kqlq.id, kqlq2.id)
48
+
49
+ # status_code = fc.delete_kql_queryset(workspace_id, kqlq.id)
50
+ # self.assertEqual(status_code, 200)
@@ -38,7 +38,7 @@ class TestFabricClientCore(unittest.TestCase):
38
38
  self.assertEqual(kqldb.display_name, kqldb_name)
39
39
 
40
40
  new_name = kqldb_name+"2"
41
- kqldb2 = fc.update_kql_database(workspace_id, kqldb.id, display_name=new_name)
41
+ kqldb2 = fc.update_kql_database(workspace_id, kqldb.id, display_name=new_name, return_item=True)
42
42
 
43
43
  kqldb = fc.get_kql_database(workspace_id, kql_database_id=kqldb.id)
44
44
  self.assertEqual(kqldb.display_name, new_name)
@@ -0,0 +1,86 @@
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
+ self.workspace_id = "c3352d34-0b54-40f0-b204-cc964b1beb8d"
16
+
17
+ datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
18
+ self.item_name = "testitem" + datetime_str
19
+ self.item_type = "Notebook"
20
+
21
+ def test_lakehouse(self):
22
+
23
+ lakehouse = self.fc.get_item(workspace_id=self.workspace_id, item_name="lakehouse1", item_type="Lakehouse")
24
+ self.assertIsNotNone(lakehouse.properties)
25
+ lakehouse_id = lakehouse.id
26
+ workspace_id = self.workspace_id
27
+ date_str = datetime.now().strftime("%Y%m%d%H%M%S")
28
+ table_name = f"table{date_str}"
29
+
30
+
31
+ status_code = self.fc.load_table(workspace_id=self.workspace_id, lakehouse_id=lakehouse_id, table_name=table_name,
32
+ path_type="File", relative_path="Files/folder1/titanic.csv")
33
+
34
+ self.assertEqual(status_code, 202)
35
+
36
+ # Run on demand table maintenance
37
+ table_name_maintenance = "table20240515114529"
38
+
39
+ execution_data = {
40
+ "tableName": table_name_maintenance,
41
+ "optimizeSettings": {
42
+ "vOrder": True,
43
+ "zOrderBy": [
44
+ "tipAmount"
45
+ ]
46
+ },
47
+ "vacuumSettings": {
48
+ "retentionPeriod": "7:01:00:00"
49
+ }
50
+ }
51
+
52
+ response = self.fc.run_on_demand_table_maintenance(workspace_id=workspace_id, lakehouse_id=lakehouse_id,
53
+ execution_data = execution_data,
54
+ job_type = "TableMaintenance", wait_for_completion = False)
55
+ self.assertIn(response.status_code, [200, 202])
56
+
57
+ table_list = self.fc.list_tables(workspace_id=self.workspace_id, lakehouse_id=lakehouse_id)
58
+ table_names = [table["name"] for table in table_list]
59
+
60
+ self.assertIn(table_name, table_names)
61
+
62
+ fc = self.fc
63
+ workspace_id = 'd8a5abe0-9eed-406d-ab46-343bc57ddbe5'
64
+
65
+ lakehouse = fc.create_lakehouse(workspace_id=workspace_id, display_name="lakehouse2")
66
+ self.assertIsNotNone(lakehouse.id)
67
+
68
+ lakehouses = fc.list_lakehouses(workspace_id)
69
+ lakehouse_names = [lh.display_name for lh in lakehouses]
70
+ self.assertGreater(len(lakehouse_names), 0)
71
+ self.assertIn("lakehouse2", lakehouse_names)
72
+
73
+ lakehouse2 = fc.get_lakehouse(workspace_id=workspace_id, lakehouse_id=lakehouse.id)
74
+ self.assertEqual(lakehouse.id, lakehouse2.id)
75
+
76
+ sleep(20)
77
+ lakehouse2 = fc.update_lakehouse(workspace_id=workspace_id, lakehouse_id=lakehouse.id, display_name="lakehouse3", return_item=True)
78
+ self.assertEqual(lakehouse2.display_name, "lakehouse3")
79
+
80
+ id = lakehouse2.id
81
+
82
+ lakehouse2 = fc.get_lakehouse(workspace_id=workspace_id, lakehouse_name="lakehouse3")
83
+ self.assertEqual(lakehouse2.id, id)
84
+
85
+ status_code = fc.delete_lakehouse(workspace_id=workspace_id, lakehouse_id=lakehouse.id)
86
+ self.assertEqual(status_code, 200)
@@ -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
+ self.workspace_id = "c3352d34-0b54-40f0-b204-cc964b1beb8d"
16
+
17
+ datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
18
+ self.item_name = "testitem" + datetime_str
19
+ self.item_type = "Notebook"
20
+
21
+
22
+ def test_ml_experiments(self):
23
+
24
+ fc = self.fc
25
+ workspace_id = 'd8a5abe0-9eed-406d-ab46-343bc57ddbe5'
26
+ mlexperiment_name = "mlexp" + datetime.now().strftime("%Y%m%d%H%M%S")
27
+ mlexperiment_name2 = "mlexp2" + datetime.now().strftime("%Y%m%d%H%M%S")
28
+
29
+ ml_experiment = fc.create_ml_experiment(workspace_id, display_name=mlexperiment_name)
30
+ self.assertEqual(ml_experiment.display_name, mlexperiment_name)
31
+
32
+ ml_experiments = fc.list_ml_experiments(workspace_id)
33
+ ml_experiment_names = [mle.display_name for mle in ml_experiments]
34
+ self.assertGreater(len(ml_experiments), 0)
35
+ self.assertIn(mlexperiment_name, ml_experiment_names)
36
+
37
+ mle = fc.get_ml_experiment(workspace_id, ml_experiment_name=mlexperiment_name)
38
+ self.assertIsNotNone(mle.id)
39
+ self.assertEqual(mle.display_name, mlexperiment_name)
40
+
41
+ mle2 = fc.update_ml_experiment(workspace_id, mle.id, display_name=mlexperiment_name2, return_item=True)
42
+
43
+ mle = fc.get_ml_experiment(workspace_id, ml_experiment_id=mle.id)
44
+ self.assertEqual(mle.display_name, mlexperiment_name2)
45
+ self.assertEqual(mle.id, mle2.id)
46
+
47
+ status_code = fc.delete_ml_experiment(workspace_id, mle.id)
48
+ self.assertEqual(status_code, 200)
@@ -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
+ self.workspace_id = "c3352d34-0b54-40f0-b204-cc964b1beb8d"
16
+
17
+ datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
18
+ self.item_name = "testitem" + datetime_str
19
+ self.item_type = "Notebook"
20
+
21
+
22
+ def test_ml_models(self):
23
+
24
+ fc = self.fc
25
+ workspace_id = 'd8a5abe0-9eed-406d-ab46-343bc57ddbe5'
26
+ datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
27
+ model_name = "mlm" + datetime_str
28
+
29
+ ml_model = fc.create_ml_model(workspace_id, display_name=model_name)
30
+ self.assertEqual(ml_model.display_name, model_name)
31
+
32
+ ml_models = fc.list_ml_models(workspace_id)
33
+ ml_model_names = [ml.display_name for ml in ml_models]
34
+ self.assertGreater(len(ml_models), 0)
35
+ self.assertIn(model_name, ml_model_names)
36
+
37
+ mlm = fc.get_ml_model(workspace_id, ml_model_name=model_name)
38
+ self.assertIsNotNone(mlm.id)
39
+ self.assertEqual(mlm.display_name, model_name)
40
+
41
+ mlm2 = fc.update_ml_model(workspace_id=workspace_id,ml_model_id= mlm.id, description=model_name, return_item=True)
42
+
43
+ mlm = fc.get_ml_model(workspace_id, ml_model_id=mlm.id)
44
+ self.assertEqual(mlm.description, model_name)
45
+ self.assertEqual(mlm.id, mlm2.id)
46
+
47
+ status_code = fc.delete_ml_model(workspace_id, mlm.id)
48
+ self.assertEqual(status_code, 200)
@@ -0,0 +1,58 @@
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
+ self.workspace_id = "c3352d34-0b54-40f0-b204-cc964b1beb8d"
16
+
17
+ datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
18
+ self.item_name = "testitem" + datetime_str
19
+ self.item_type = "Notebook"
20
+
21
+
22
+ def test_notebooks(self):
23
+
24
+ fc = self.fc
25
+ workspace_id = 'd8a5abe0-9eed-406d-ab46-343bc57ddbe5'
26
+
27
+ notebook_name = "notebook" + datetime.now().strftime("%Y%m%d%H%M%S")
28
+
29
+ notebook_w_content = fc.get_notebook(workspace_id, notebook_name="HelloWorld")
30
+
31
+ definition = fc.get_notebook_definition(workspace_id, notebook_w_content.id)
32
+
33
+ self.assertIsNotNone(definition)
34
+ self.assertIn("definition", definition)
35
+ definition = definition["definition"]
36
+ notebook = fc.create_notebook(workspace_id, definition=definition, display_name=notebook_name)
37
+ fc.update_notebook_definition(workspace_id, notebook.id, definition=definition)
38
+ notebook = fc.get_notebook(workspace_id, notebook_id=notebook.id)
39
+ self.assertEqual(notebook.display_name, notebook_name)
40
+ self.assertIsNotNone(notebook.definition)
41
+
42
+ notebooks = fc.list_notebooks(workspace_id)
43
+ notebook_names = [nb.display_name for nb in notebooks]
44
+ self.assertGreater(len(notebooks), 0)
45
+ self.assertIn(notebook_name, notebook_names)
46
+
47
+ nb = fc.get_notebook(workspace_id, notebook_name=notebook_name)
48
+ self.assertIsNotNone(nb.id)
49
+ self.assertEqual(nb.display_name, notebook_name)
50
+
51
+ nb2 = fc.update_notebook(workspace_id, notebook_id=nb.id, display_name=f"{notebook_name}2", return_item=True)
52
+
53
+ nb = fc.get_notebook(workspace_id, notebook_id=nb.id)
54
+ self.assertEqual(nb.display_name, f"{notebook_name}2")
55
+ self.assertEqual(nb.id, nb2.id)
56
+
57
+ status_code = fc.delete_notebook(workspace_id, nb.id)
58
+ self.assertEqual(status_code, 200)
@@ -0,0 +1,46 @@
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
+ self.workspace_id = "c3352d34-0b54-40f0-b204-cc964b1beb8d"
16
+
17
+ datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
18
+ self.item_name = "testitem" + datetime_str
19
+ self.item_type = "Notebook"
20
+
21
+ def test_list_other_items(self):
22
+
23
+ fc = self.fc
24
+
25
+ workspace_id = 'd8a5abe0-9eed-406d-ab46-343bc57ddbe5'
26
+
27
+ list_dashboards = fc.list_dashboards(workspace_id)
28
+ dashboard_names = [dashboard.display_name for dashboard in list_dashboards]
29
+ self.assertGreater(len(list_dashboards), 0)
30
+ self.assertIn("dashboard1", dashboard_names)
31
+
32
+ list_datamarts = fc.list_datamarts(workspace_id)
33
+ datamart_names = [datamart.display_name for datamart in list_datamarts]
34
+ self.assertGreater(len(list_datamarts), 0)
35
+ self.assertIn("datamart1", datamart_names)
36
+
37
+ list_sql_endpoints = fc.list_sql_endpoints(workspace_id)
38
+ sqlendpoint_names = [sqlendpoint.display_name for sqlendpoint in list_sql_endpoints]
39
+ self.assertGreater(len(list_sql_endpoints), 0)
40
+ self.assertIn("sqlendpointlakehouse", sqlendpoint_names)
41
+
42
+ # list_mirrored_warehouses = fc.list_mirrored_warehouses(self.workspace_id)
43
+ # self.assertGreater(len(list_mirrored_warehouses), 0)
44
+
45
+ # list_paginated_reports = fc.list_paginated_reports(self.workspace_id)
46
+ # self.assertGreater(len(list_paginated_reports), 0)
@@ -0,0 +1,53 @@
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
+ self.workspace_id = "c3352d34-0b54-40f0-b204-cc964b1beb8d"
16
+
17
+ datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
18
+ self.item_name = "testitem" + datetime_str
19
+ self.item_type = "Notebook"
20
+
21
+
22
+ def test_reports(self):
23
+
24
+ fc = self.fc
25
+ workspace_id = 'd8a5abe0-9eed-406d-ab46-343bc57ddbe5'
26
+
27
+ report_name = "report1234"
28
+
29
+ report_w_content = fc.get_report(workspace_id, report_name="HelloWorldReport")
30
+
31
+ definition = fc.get_report_definition(workspace_id, report_w_content.id)
32
+
33
+ self.assertIsNotNone(definition)
34
+ self.assertIn("definition", definition)
35
+ definition = definition["definition"]
36
+
37
+ report = fc.create_report(workspace_id, display_name=report_name, definition=definition)
38
+ fc.update_report_definition(workspace_id, report.id, definition=definition)
39
+ report = fc.get_report(workspace_id, report_id=report.id)
40
+ self.assertEqual(report.display_name, report_name)
41
+ self.assertIsNotNone(report.definition)
42
+
43
+ reports = fc.list_reports(workspace_id)
44
+ report_names = [r.display_name for r in reports]
45
+ self.assertGreater(len(reports), 0)
46
+ self.assertIn(report_name, report_names)
47
+
48
+ r = fc.get_report(workspace_id, report_name=report_name)
49
+ self.assertIsNotNone(r.id)
50
+ self.assertEqual(r.display_name, report_name)
51
+
52
+ status_code = fc.delete_report(workspace_id, r.id)
53
+ self.assertEqual(status_code, 200)
@@ -0,0 +1,51 @@
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
+ self.workspace_id = "c3352d34-0b54-40f0-b204-cc964b1beb8d"
16
+
17
+ datetime_str = datetime.now().strftime("%Y%m%d%H%M%S")
18
+ self.item_name = "testitem" + datetime_str
19
+ self.item_type = "Notebook"
20
+
21
+ def test_semantic_models(self):
22
+
23
+ fc = self.fc
24
+ workspace_id = 'd8a5abe0-9eed-406d-ab46-343bc57ddbe5'
25
+
26
+ semantic_model_name = "semanticmodel1234"
27
+
28
+ semantic_model_w_content = fc.get_semantic_model(workspace_id, semantic_model_name="Table")
29
+
30
+ definition = fc.get_semantic_model_definition(workspace_id, semantic_model_w_content.id)
31
+
32
+ self.assertIsNotNone(definition)
33
+ self.assertIn("definition", definition)
34
+ definition = definition["definition"]
35
+ semantic_model = fc.create_semantic_model(workspace_id, display_name=semantic_model_name, definition=definition)
36
+ fc.update_semantic_model_definition(workspace_id, semantic_model.id, definition=definition)
37
+ semantic_model = fc.get_semantic_model(workspace_id, semantic_model_id=semantic_model.id)
38
+ self.assertEqual(semantic_model.display_name, semantic_model_name)
39
+ self.assertIsNotNone(semantic_model.definition)
40
+
41
+ semantic_models = fc.list_semantic_models(workspace_id)
42
+ semantic_model_names = [sm.display_name for sm in semantic_models]
43
+ self.assertGreater(len(semantic_models), 0)
44
+ self.assertIn(semantic_model_name, semantic_model_names)
45
+
46
+ sm = fc.get_semantic_model(workspace_id, semantic_model_name=semantic_model_name)
47
+ self.assertIsNotNone(sm.id)
48
+ self.assertEqual(sm.display_name, semantic_model_name)
49
+
50
+ status_code = fc.delete_semantic_model(workspace_id, sm.id)
51
+ self.assertEqual(status_code, 200)