def test_parse_cpe_name_v23(self): ''' Parse correct CPE_NAME data v2.3 formatted :return: ''' for cpe, cpe_ret in [ ('cpe:2.3:o:microsoft:windows_xp:5.1.601:beta:*:*:*:*:*:*', { 'phase': 'beta', 'version': '5.1.601', 'product': 'windows_xp', 'vendor': 'microsoft', 'part': 'operating system' }), ('cpe:2.3:h:corellian:millenium_falcon:1.0:*:*:*:*:*:*:*', { 'phase': None, 'version': '1.0', 'product': 'millenium_falcon', 'vendor': 'corellian', 'part': 'hardware' }), ('cpe:2.3:*:dark_empire:light_saber:3.0:beta:*:*:*:*:*:*', { 'phase': 'beta', 'version': '3.0', 'product': 'light_saber', 'vendor': 'dark_empire', 'part': None }) ]: ret = core._parse_cpe_name(cpe) for key in cpe_ret: assert key in ret assert cpe_ret[key] == ret[key]
def test_parse_cpe_name_broken(self): ''' Parse broken CPE_NAME data :return: ''' for cpe in ['cpe:broken', 'cpe:broken:in:all:ways:*:*:*:*', 'cpe:x:still:broken:123', 'who:/knows:what:is:here']: assert core._parse_cpe_name(cpe) == {}
def test_parse_cpe_name_wfn(self): ''' Parse correct CPE_NAME data WFN formatted :return: ''' for cpe, cpe_ret in [('cpe:/o:opensuse:leap:15.0', {'phase': None, 'version': '15.0', 'product': 'leap', 'vendor': 'opensuse', 'part': 'operating system'}), ('cpe:/o:vendor:product:42:beta', {'phase': 'beta', 'version': '42', 'product': 'product', 'vendor': 'vendor', 'part': 'operating system'})]: ret = core._parse_cpe_name(cpe) for key in cpe_ret: assert key in ret assert cpe_ret[key] == ret[key]