# -*- coding: utf-8 -*- # Copyright 2019 Nokia # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # pylint: disable=invalid-name from tools.rpm_test_data import cpp_expected yum_installed_output = """Loaded plugins: fastestmirror, priorities Loading mirror speeds from cached hostfile Installed Packages Name : non-repo-pkg-1 Arch : x86_64 Version : 1 Release : 1 Repo : installed Name : non-repo-pkg-2 Arch : noarch Version : 2 Release : 2 Repo : installed Obsoletes : (none) Name : base-image-pkg Arch : x86_64 Version : 3 Release : 3 Repo : installed From repo : base Name : internal-pkg Arch : noarch Version : 4 Release : 4 Repo : installed From repo : localrepo Name : 3rdparty-pkg Arch : x86_64 Version : 5 Release : 5 Repo : installed From repo : purkki-3rdparty Obsoletes : 2ndparty-pkg """ rpm_info_output = """Name : non-repo-pkg-1 Version : 1 Release : 1 Architecture: x86_64 Source RPM : non-repo-pkg-1-1-1.src.rpm Name : non-repo-pkg-2 Version : 2 Release : 2 Architecture: noarch Source RPM : non-repo-pkg-2-2-2.src.rpm Name : base-image-pkg Version : 3 Release : 3 Architecture: x86_64 Source RPM : base-image-pkg-3-3.src.rpm Name : internal-pkg Version : 4 Release : 4 Architecture: noarch Source RPM : internal-pkg-4-4.src.rpm Name : 3rdparty-pkg Version : 5 Release : 5 Architecture: x86_64 Source RPM : 3rdparty-pkg-5-5.src.rpm """ # noqa, PEP-8 disabled because of example output has trailing spaces yum_available_output_header = """Added tmprepo repo from http://url1/ Available Packages """ yum_available_output_base = """ Name : base-image-pkg Arch : x86_64 Epoch : 0 Version : 3 Release : 3 Size : 195 k Repo : base """ yum_available_output_none2 = """ Name : non-repo-pkg-1 Arch : x86_64 Epoch : 0 Version : 1 Release : 1 Size : 195 k Repo : none2 """ yum_available_output_none1 = """ Name : non-repo-pkg-2 Arch : noarch Version : 2 Release : 2 Size : 195 k Repo : none1 """ yum_available_output_localrepo = """ Name : internal-pkg Arch : x86_64 Epoch : 0 Version : 4 Release : 4 Size : 195 k Repo : localrepo """ yum_available_output_purkki_3rdparty = """ Name : 3rdparty-pkg Arch : x86_64 Epoch : 0 Version : 5 Release : 5 Size : 195 k Repo : purkki-3rdparty """ yum_available_output = yum_available_output_header + yum_available_output_base + \ yum_available_output_none1 + yum_available_output_none2 + \ yum_available_output_localrepo + yum_available_output_purkki_3rdparty internal_pkg_bom = [{'name': '@types/d3-axis', 'version': '1.0.10', 'foss': 'yes', 'source-url': 'http://some.url/1', 'crypto-capable': True}, {'name': '@types/d3-array@*', 'version': '1.2.1', 'foss': 'Yes', 'source-url': 'http://some.url/2'}] boms_output = {'internal-pkg-4-4.noarch': {"bom": internal_pkg_bom}} expected_output = [ { 'Name': 'non-repo-pkg-1', 'Architecture': 'x86_64', 'Version': '1', 'Release': '1', 'Repo': 'installed', 'Repo data': {'baseurl': 'test-url-for-none2', 'name': 'none2'}, 'Obsoletes': 'N/A', 'Source RPM': 'non-repo-pkg-1-1-1.src.rpm', 'Crypto capable': False, 'BOM': '', }, { 'Name': 'non-repo-pkg-2', 'Architecture': 'noarch', 'Version': '2', 'Release': '2', 'Repo': 'installed', 'Repo data': {'baseurl': 'test-url-for-none1', 'name': 'none1'}, 'Obsoletes': 'N/A', 'Source RPM': 'non-repo-pkg-2-2-2.src.rpm', 'Crypto capable': False, 'BOM': '', }, { 'Name': 'base-image-pkg', 'Architecture': 'x86_64', 'Version': '3', 'Release': '3', 'Repo': 'installed', 'From repo': 'base', 'Repo data': {'baseurl': 'test-url-for-base', 'name': 'base'}, 'Obsoletes': 'N/A', 'Source RPM': 'base-image-pkg-3-3.src.rpm', 'Crypto capable': False, 'BOM': '', }, { 'Name': 'internal-pkg', 'Architecture': 'noarch', 'Version': '4', 'Release': '4', 'Repo': 'installed', 'From repo': 'localrepo', 'Repo data': {'baseurl': 'test-url/artifact/results/repo', 'name': 'localrepo'}, 'Obsoletes': 'N/A', 'Source RPM': 'internal-pkg-4-4.src.rpm', 'Crypto capable': True, 'BOM': internal_pkg_bom, }, { 'Name': '3rdparty-pkg', 'Architecture': 'x86_64', 'Version': '5', 'Release': '5', 'Repo': 'installed', 'From repo': 'purkki-3rdparty', 'Repo data': {'baseurl': 'test-url-for-purkki-3rdparty', 'name': 'purkki-3rdparty', 'test-extra-option': 'test-value'}, 'Obsoletes': '2ndparty-pkg', 'Source RPM': '3rdparty-pkg-5-5.src.rpm', 'Crypto capable': False, 'BOM': '', }] basesystem_combined = { # From RPM info 'Name': 'basesystem', 'Version': '10.0', 'Release': '7.el7.centos', 'Architecture': 'noarch', 'Install Date': 'Fri 01 Apr 2016 11:47:25 AM EEST', 'Group': 'System Environment/Base', 'Size': '0', 'License': 'Public Domain', 'Signature': 'RSA/SHA256, Fri 04 Jul 2014 03:46:57 AM EEST, Key ID 24c6a8a7f4a80eb5', 'Source RPM': 'basesystem-10.0-7.el7.centos.src.rpm', 'Build Date': 'Fri 27 Jun 2014 01:37:10 PM EEST', 'Build Host': 'worker1.bsys.centos.org', 'Relocations': '(not relocatable)', 'Packager': 'CentOS BuildSystem ', 'Vendor': 'CentOS', 'Summary': 'The skeleton package which defines a simple CentOS Linux system', 'Description': '\n'.join( ['Basesystem defines the components of a basic CentOS Linux', 'system (for example, the package installation order to use during', 'bootstrapping). Basesystem should be in every installation of a system,', 'and it should never be removed.']), # From yum info 'Repo': 'installed', } centos_logos_combined = { 'Name': 'centos-logos', 'Version': '70.0.6', 'Release': '3.el7.centos', 'Architecture': 'noarch', 'License': u'Copyright © 2014 The CentOS Project. All rights reserved.', } cpp_combined = cpp_expected.copy() cpp_combined.update({'Repo': 'installed', 'From repo': 'purkki-centos-base'}) dejavu_fonts_common_combined = { 'Name': 'dejavu-fonts-common', 'Version': '2.33', 'Release': '6.el7', 'Architecture': 'noarch', 'Install Date': 'Wed Feb 7 13:49:27 2018', 'Group': 'User Interface/X', 'Size': '130455', 'License': 'Bitstream Vera and Public Domain', 'Signature': 'RSA/SHA256, Fri Jul 4 01:06:50 2014, Key ID 24c6a8a7f4a80eb5', 'Source RPM': 'dejavu-fonts-2.33-6.el7.src.rpm', 'Build Date': 'Mon Jun 9 21:34:30 2014', 'Build Host': 'worker1.bsys.centos.org', 'Relocations': '(not relocatable)', 'Packager': 'CentOS BuildSystem ', 'Vendor': 'CentOS', 'URL': 'http://dejavu-fonts.org/', 'Summary': 'Common files for the Dejavu font set', 'Description': '\n'.join( ['The DejaVu font set is based on the “Bitstream Vera” fonts, release 1.10. Its', 'purpose is to provide a wider range of characters, while maintaining the', 'original style, using an open collaborative development process.', '', 'This package consists of files used by other DejaVu packages.']), 'Repo': 'installed', 'From repo': 'purkki-centos-base' } crypto_rpms_json = """ [ { "name": "internal-pkg-4-4.noarch", "requires": [ "libgssapi_krb5.so.2()(64bit)", "libk5crypto.so.3()(64bit)", "libkrb5.so.3()(64bit)", "libcrypto.so.10()(64bit)", "libcrypto.so.10(OPENSSL_1.0.1_EC)(64bit)", "libcrypto.so.10(OPENSSL_1.0.2)(64bit)", "libcrypto.so.10(libcrypto.so.10)(64bit)", "libssl.so.10()(64bit)", "libssl.so.10(libssl.so.10)(64bit)", "openssl-libs(x86-64)", "rtld(GNU_HASH)" ] } ] """