diff --git a/src/Mod/AddonManager/AddonManagerTest/app/test_macro.py b/src/Mod/AddonManager/AddonManagerTest/app/test_macro.py
index a7edb81773..bbf82afeaa 100644
--- a/src/Mod/AddonManager/AddonManagerTest/app/test_macro.py
+++ b/src/Mod/AddonManager/AddonManagerTest/app/test_macro.py
@@ -179,4 +179,46 @@ static char * blarg_xpm[] = {
m = Macro("Unit Test Macro")
m.fill_details_from_file(outfile)
os.unlink(outfile)
- return m
\ No newline at end of file
+ return m
+
+ def test_fetch_raw_code_no_data(self):
+
+ class MockNetworkManagerNoData():
+ def __init__(self):
+ self.fetched_url = None
+ def blocking_get(self, url):
+ self.fetched_url = url
+ return None
+ nmNoData = MockNetworkManagerNoData()
+ m = Macro("Unit Test Macro")
+ Macro.network_manager = nmNoData
+ returned_data = m._fetch_raw_code("rawcodeurl Totally fake")
+ self.assertIsNone(returned_data)
+ self.assertEqual(nmNoData.fetched_url,"https://fake_url.com")
+
+ nmNoData.fetched_url = None
+ returned_data = m._fetch_raw_code("Fake pagedata with no URL at all.")
+ self.assertIsNone(returned_data)
+ self.assertIsNone(nmNoData.fetched_url)
+
+ Macro.network_manager = None
+
+ def test_fetch_raw_code_with_data(self):
+
+ class MockNetworkManagerWithData():
+ class MockQByteArray:
+ def data(self):
+ return "Data returned to _fetch_raw_code".encode("utf-8")
+ def __init__(self):
+ self.fetched_url = None
+ def blocking_get(self, url):
+ self.fetched_url = url
+ return MockNetworkManagerWithData.MockQByteArray()
+
+ nmWithData = MockNetworkManagerWithData()
+ m = Macro("Unit Test Macro")
+ Macro.network_manager = nmWithData
+ returned_data = m._fetch_raw_code("rawcodeurl Totally fake")
+ self.assertEqual(returned_data,"Data returned to _fetch_raw_code")
+
+ Macro.network_manager = None