Skip to content

Commit ddc3555

Browse files
committed
add ut for extract_linux_distribution_os_info
1 parent eabe3c7 commit ddc3555

File tree

4 files changed

+49
-9
lines changed

4 files changed

+49
-9
lines changed

src/core/src/bootstrap/EnvLayer.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -299,11 +299,11 @@ def linux_distribution(self):
299299
code, output = self.__read_record(operation)
300300
return eval(output)
301301

302-
def linux_distribution_images_details(self):
302+
def extract_linux_distribution_os_info(self):
303+
# type: () -> tuple
303304
"""
304305
Extract os information: offer, version, code
305-
Returns:
306-
tuple: A tuple containing (os_offer, os_version, os_code).
306+
Returns: tuple: A tuple of (os_offer, os_version, os_code).
307307
"""
308308
os_offer, os_version, os_code = None, None, None
309309
if self.linux_distribution() is not None:

src/core/src/package_managers/YumPackageManager.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ def get_other_updates(self):
175175
def __is_image_rhel8_or_higher(self):
176176
# type: () -> bool
177177
""" Check if image is RHEL8+ return true else false """
178-
os_offer, os_version, os_code = self.env_layer.platform.linux_distribution_images_details()
178+
os_offer, os_version, os_code = self.env_layer.platform.extract_linux_distribution_os_info()
179179
if "Red Hat Enterprise Linux" in os_offer and int(os_version.split('.')[0]) >= 8:
180180
self.composite_logger.log_debug("[YPM] RHEL version >= 8 detected. [DetectedVersion={0}]".format(str(os_version)))
181181
return True
@@ -184,7 +184,7 @@ def __is_image_rhel8_or_higher(self):
184184
def __is_image_rhel(self):
185185
# type: () -> bool
186186
""" Check if image is RHEL return true else false """
187-
os_offer, os_version, os_code = self.env_layer.platform.linux_distribution_images_details()
187+
os_offer, os_version, os_code = self.env_layer.platform.extract_linux_distribution_os_info()
188188
if "Red Hat Enterprise Linux" in os_offer:
189189
return True
190190
return False

src/core/tests/Test_EnvLayer.py

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,47 @@ def test_get_package_manager(self):
8585
self.envlayer.run_command_output = self.backup_run_command_output
8686
self.envlayer.platform.linux_distribution = self.backup_linux_distribution
8787
platform.system = self.backup_platform_system
88-
88+
89+
def test_extract_linux_distribution_os_info_with_data(self):
90+
""" Test linux_distribution_images_details returning tuples of os info. """
91+
# set up mocks
92+
self.backup_platform_system = platform.system()
93+
platform.system = self.mock_platform_system
94+
self.backup_linux_distribution = self.envlayer.platform.linux_distribution
95+
self.envlayer.platform.linux_distribution = self.mock_linux_distribution
96+
97+
# Act
98+
os_offer, os_version, os_name = self.envlayer.platform.extract_linux_distribution_os_info()
99+
100+
# Verify
101+
self.assertEqual(os_offer, 'test')
102+
self.assertEqual(os_version, 'test')
103+
self.assertEqual(os_name, 'test')
104+
105+
# Restore mocks
106+
self.envlayer.platform.linux_distribution = self.backup_linux_distribution
107+
platform.system = self.backup_platform_system
108+
109+
def test_extract_linux_distribution_os_info_no_data(self):
110+
""" Test linux_distribution_images_details returning none. """
111+
# set up mocks
112+
self.backup_platform_system = platform.system()
113+
platform.system = self.mock_platform_system
114+
self.backup_linux_distribution = self.envlayer.platform.linux_distribution
115+
self.envlayer.platform.linux_distribution = lambda: None
116+
117+
# Act
118+
os_offer, os_version, os_name = self.envlayer.platform.extract_linux_distribution_os_info()
119+
120+
# Verify
121+
self.assertEqual(os_offer, None)
122+
self.assertEqual(os_version, None)
123+
self.assertEqual(os_name, None)
124+
125+
# Restore mocks
126+
self.envlayer.platform.linux_distribution = self.backup_linux_distribution
127+
platform.system = self.backup_platform_system
128+
89129

90130
if __name__ == '__main__':
91131
unittest.main()

src/core/tests/Test_YumPackageManager.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -822,8 +822,8 @@ def test_apply_fix_ssl_cert_issue_non_rhel_img_failed(self):
822822
""" Test ssl expired cert issue throw exception on non rhel images."""
823823
# Set up and mocks
824824
self.runtime.set_legacy_test_type('SSLCertificateIssueType1SadPathAfterFix')
825-
original_env_layer_platform_linux_distribution_images_details = self.runtime.env_layer.platform.linux_distribution_images_details
826-
self.runtime.env_layer.platform.linux_distribution_images_details = self.mock_ubuntu_distribution
825+
original_env_layer_platform_linux_distribution_images_details = self.runtime.env_layer.platform.extract_linux_distribution_os_info
826+
self.runtime.env_layer.platform.extract_linux_distribution_os_info = self.mock_ubuntu_distribution
827827
package_manager = self.runtime.container.get('package_manager')
828828
self.assertIsNotNone(package_manager)
829829

@@ -835,7 +835,7 @@ def test_apply_fix_ssl_cert_issue_non_rhel_img_failed(self):
835835
self.assertTrue('Customer environment error (expired SSL certs)' in str(context.exception))
836836

837837
# Restore mock
838-
self.runtime.env_layer.platform.linux_distribution_images_details = original_env_layer_platform_linux_distribution_images_details
838+
self.runtime.env_layer.platform.extract_linux_distribution_os_info = original_env_layer_platform_linux_distribution_images_details
839839
self.runtime.stop()
840840

841841

0 commit comments

Comments
 (0)