def testAdvisoryPackageMeantForCurrentOsCentOs65(self): # arrange os_fetcher = Mock() os_fetcher.get_mid_level_version = Mock(return_value='6.5') errata = Mock() pkg = Mock() checker = package_checker.PackageChecker(errata, pkg, os_fetcher) advisory_packages = [{ 'name': 'xen-libs', 'version': '3.0.3', 'release': '135.el6', 'arch': 'x86_64' }, { 'name': 'xen-libs', 'version': '3.0.3', 'release': '135.el6_4', 'arch': 'x86_64' }, { 'name': 'xen-libs', 'version': '3.0.3', 'release': '135.el6_5.2', 'arch': 'x86_64' }] # act result = map(lambda a: checker._advisoryPackageMeantForCurrentOs(a), advisory_packages) # assert assert result == [False, False, True]
def testFindAdvisoriesOnInstalledPackagesInstalledAndNeedsUpdating(self): # arrange errata = Mock() advisory = errata_fetcher.ErrataItem('adv id', ErrataType.SecurityAdvisory, ErrataSeverity.Important, ['x86_64'], ['7'], [{ 'name': 'xen-libs', 'version': '3.0.3', 'release': '135.el7.2', 'arch': 'x86_64' }], []) errata.get_errata = Mock(return_value=[advisory]) pkg = Mock() xen_package = Package('xen-libs', '3.0.3', '135.el7.1', 'x86_64', 'updates') pkg.fetch_installed_packages = Mock(return_value=[ xen_package, Package('openssl', '2.0', '4.el7', 'x86_64', 'updates') ]) os_fetcher = Mock() os_fetcher.get_top_level_version = Mock(return_value='7') os_fetcher.get_mid_level_version = Mock(return_value='7.0') checker = package_checker.PackageChecker(errata, pkg, os_fetcher) # act result = checker.findAdvisoriesOnInstalledPackages() # assert assert len(result) == 1 first = result[0] assert first['advisory'] == advisory assert first['installed_packages'] == [xen_package]
def testFindAdvisoriesOnInstalledPackagesInstalledAndNeedsUpdatingButWrongCentOsVersion( self): # arrange errata = Mock() errata.get_errata = Mock(return_value=[ errata_fetcher.ErrataItem('adv id', ErrataType.SecurityAdvisory, ErrataSeverity.Important, ['x86_64'], ['7'], [{ 'name': 'xen-libs', 'version': '3.0.3', 'release': '135.el7.2', 'arch': 'x86_64' }], []) ]) pkg = Mock() pkg.fetch_installed_packages = Mock(return_value=[ Package('xen-libs', '3.0.3', '135.el7.1', 'x86_64', 'updates'), Package('openssl', '2.0', '4.el6', 'x86_64', 'updates') ]) os_fetcher = Mock() os_fetcher.get_top_level_version = Mock(return_value='6') os_fetcher.get_mid_level_version = Mock(return_value='6.0') checker = package_checker.PackageChecker(errata, pkg, os_fetcher) # act result = checker.findAdvisoriesOnInstalledPackages() # assert self.assertEquals(result, [])
def testFindAdvisoriesOnInstalledPackagesVersionComparisonWith2Digits( self): # arrange errata = Mock() errata_packages = [{ 'arch': 'x86_64', 'name': 'glibc', 'release': '55.el7.1', 'version': '2.17' }, { 'arch': 'x86_64', 'name': 'glibc', 'release': '118.el7.3', 'version': '2.5' }] errata.get_errata = Mock(return_value=[ errata_fetcher.ErrataItem('adv id', ErrataType.SecurityAdvisory, ErrataSeverity.Important, ['x86_64'], ['7'], errata_packages, []) ]) pkg = Mock() pkg.fetch_installed_packages = Mock(return_value=[ Package('glibc', '2.17', '55.el7.1', 'x86_64', 'updates'), ]) os_fetcher = Mock() os_fetcher.get_top_level_version = Mock(return_value='7') os_fetcher.get_mid_level_version = Mock(return_value='7.0') checker = package_checker.PackageChecker(errata, pkg, os_fetcher) # act result = checker.findAdvisoriesOnInstalledPackages() # assert assert result == []
def testSameVersionOfAnotherPackageInstalled(self): # arrange errata = Mock() errata.get_errata = Mock(return_value=[ errata_fetcher.ErrataItem( 'adv id', ErrataType.SecurityAdvisory, ErrataSeverity. Important, ['i686', 'x86_64'], ['7'], [{ 'name': 'libcacard-tools', 'version': '1.5.3', 'release': '60.el7_0.5', 'arch': 'x86_64' }], []) ]) pkg = Mock() pkg.fetch_installed_packages = Mock(return_value=[ Package('libgcrypt', '1.5.3', '4.el7', 'x86_64', 'updates') ]) os_fetcher = Mock() os_fetcher.get_top_level_version = Mock(return_value='7') os_fetcher.get_mid_level_version = Mock(return_value='7.0') checker = package_checker.PackageChecker(errata, pkg, os_fetcher) # act result = checker.findAdvisoriesOnInstalledPackages() # assert assert result == []
def testFindAdvisoriesOnInstalledPackagesInstalledAndNeedsUpdatingButWrongCentOsVersionOnPackage( self): # https://github.com/wied03/centos-package-cron/issues/5 # arrange errata = Mock() adv_packages = [{ 'name': 'bash', 'version': '3.2', 'release': '33.el5.1', 'arch': 'i386' }, { 'name': 'bash', 'version': '3.2', 'release': '33.el5.1', 'arch': 'src' }, { 'name': 'bash', 'version': '3.2', 'release': '33.el5.1', 'arch': 'x86_64' }, { 'name': 'bash', 'version': '4.1.2', 'release': '15.el6_5.1', 'arch': 'i686' }, { 'name': 'bash', 'version': '4.1.2', 'release': '15.el6_5.1', 'arch': 'src' }, { 'name': 'bash', 'version': '4.1.2', 'release': '15.el6_5.1', 'arch': 'x86_64' }, { 'name': 'bash', 'version': '4.2.45', 'release': '5.el7_0.2', 'arch': 'src' }, { 'name': 'bash', 'version': '4.2.45', 'release': '5.el7_0.2', 'arch': 'x86_64' }] errata.get_errata = Mock(return_value=[ errata_fetcher.ErrataItem('adv id', ErrataType.SecurityAdvisory, ErrataSeverity.Important, ['x86_64'], ['5', '6', '7'], adv_packages, []) ]) pkg = Mock() pkg.fetch_installed_packages = Mock(return_value=[ Package('bash', '4.1.2', '29.el6', 'x86_64', 'updates') ]) os_fetcher = Mock() os_fetcher.get_top_level_version = Mock(return_value='6') os_fetcher.get_mid_level_version = Mock(return_value='6.6') checker = package_checker.PackageChecker(errata, pkg, os_fetcher) # act result = checker.findAdvisoriesOnInstalledPackages() # assert self.assertEquals(result, [])