From 796ef07625bb1629ef0b0cf2ad68f59b278933c1 Mon Sep 17 00:00:00 2001 From: Chris Hennes Date: Sun, 27 Nov 2022 18:00:44 -0600 Subject: [PATCH] Addon Manager: Add unit tests for _fetch_raw_code --- .../AddonManagerTest/app/test_macro.py | 44 ++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) 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