1
0
mirror of https://github.com/HorlogeSkynet/archey4 synced 2025-07-23 16:00:39 +02:00

[ENTRY][Model] Prevents vendor duplication when product name contains it

This commit is contained in:
Michael Bromilow
2022-09-05 18:19:36 +01:00
committed by Samuel FORESTIER
parent 766ff46c9a
commit 7a305988df
2 changed files with 19 additions and 4 deletions
archey

@@ -90,8 +90,10 @@ class Model(Entry):
product_name = _read_dmi_file("product_name")
if product_name:
product_info = [product_name]
# Prepend product vendor name (if available).
product_info.insert(0, _read_dmi_file("sys_vendor"))
# Prepend product vendor name (if available and not already included).
sys_vendor = _read_dmi_file("sys_vendor")
if sys_vendor and not product_name.startswith(sys_vendor):
product_info.insert(0, sys_vendor)
# Append product version (if available).
product_info.append(_read_dmi_file("product_version"))

@@ -125,13 +125,26 @@ class TestModelEntry(unittest.TestCase):
with patch('archey.entries.model.open', mock_open()) as mock:
mock.return_value.read.side_effect = [
'PRODUCT-NAME\n',
'PRODCT-VENDOR\n',
'PRODUCT-VENDOR\n',
'PRODUCT-VERSION\n'
]
self.assertEqual(
Model._fetch_dmi_info(), # pylint: disable=protected-access
'PRODCT-VENDOR PRODUCT-NAME PRODUCT-VERSION'
'PRODUCT-VENDOR PRODUCT-NAME PRODUCT-VERSION'
)
# Product vendor is included in product name
with patch('archey.entries.model.open', mock_open()) as mock:
mock.return_value.read.side_effect = [
'PRODUCT-VENDOR PRODUCT-NAME\n',
'PRODUCT-VENDOR\n',
'PRODUCT-VERSION\n'
]
self.assertEqual(
Model._fetch_dmi_info(), # pylint: disable=protected-access
'PRODUCT-VENDOR PRODUCT-NAME PRODUCT-VERSION'
)
# Only product name and version are available.