Example #1
0
    def test_uninstall(self, erased, affected, yum):
        names = [
            'zsh',
            'ksh',
            'gofer',
            'okaara',
            'kernel',
        ]

        progress = Mock()
        yum.return_value.tsInfo.__len__.return_value = len(names)

        # test
        package = Package(progress=progress)
        details = package.uninstall(names)

        # validation
        yum.assert_called_once_with(progress=progress)
        self.assertEqual(
            yum.return_value.remove.call_args_list,
            [
                call(pattern=n) for n in names
            ])
        yum.return_value.resolveDeps.assert_called_once_with()
        yum.return_value.processTransaction.assert_called_once_with()
        yum.return_value.close.assert_called_once_with()
        erased.assert_called_once_with(yum.return_value.tsInfo)
        affected.assert_called_once_with(erased.return_value)
        self.assertEqual(details, erased.return_value)
Example #2
0
    def test_uninstall_no_transactions(self, erased, affected, yum):
        names = [
            'zsh',
            'kernel',
        ]

        progress = Mock()
        yum.return_value.tsInfo.__len__.return_value = 0
        yum.return_value.progress = progress

        # test
        package = Package(progress=progress)
        details = package.uninstall(names)

        # validation
        self.assertEqual(
            yum.return_value.remove.call_args_list,
            [
                call(pattern=n) for n in names
            ])
        yum.return_value.resolveDeps.assert_called_once_with()
        progress.set_status.assert_called_once_with(True)
        erased.assert_called_once_with(yum.return_value.tsInfo)
        affected.assert_called_once_with(erased.return_value)
        self.assertFalse(yum.return_value.processTransaction.called)
        self.assertEqual(details, erased.return_value)
Example #3
0
    def test_update_not_applied(self, updated, affected, yum):
        names = [
            'zsh',
            'ksh',
            'gofer',
            'okaara',
            'kernel',
        ]

        progress = Mock()
        yum.return_value.tsInfo.__len__.return_value = len(names)
        yum.return_value.progress = progress

        # test
        package = Package(apply=False, progress=progress)
        details = package.update(names)

        # validation
        self.assertEqual(
            yum.return_value.update.call_args_list,
            [
                call(pattern=n) for n in names
            ])
        yum.return_value.resolveDeps.assert_called_once_with()
        progress.set_status.assert_called_once_with(True)
        updated.assert_called_once_with(yum.return_value.tsInfo)
        affected.assert_called_once_with(updated.return_value)
        self.assertFalse(yum.return_value.processTransaction.called)
        self.assertEqual(details, updated.return_value)
Example #4
0
    def test_install_error(self, yum):
        names = ['kernel']
        yum.return_value.install.side_effect = InstallError(value=u'D' + unichr(246) + 'g')

        # test
        package = Package()
        self.assertRaises(InstallError, package.install, names)
Example #5
0
    def test_update_all(self, updated, affected, yum):
        progress = Mock()
        yum.return_value.tsInfo.__len__.return_value = 10

        # test
        package = Package(importkeys=123, progress=progress)
        details = package.update()

        # validation
        yum.assert_called_once_with(123, progress)
        yum.return_value.update.assert_called_once_with()
        yum.return_value.resolveDeps.assert_called_once_with()
        yum.return_value.processTransaction.assert_called_once_with()
        yum.return_value.close.assert_called_once_with()
        updated.assert_called_once_with(yum.return_value.tsInfo)
        affected.assert_called_once_with(updated.return_value)
        self.assertEqual(details, updated.return_value)
Example #6
0
    def test_erased(self, tx_summary):
        # test
        ts_info = Mock()
        erased = Package.erased(ts_info)

        # validation
        states = (
            constants.TS_FAILED,
            constants.TS_ERASE
        )
        tx_summary.assert_called_once_with(ts_info, states)
        self.assertEqual(erased, tx_summary.return_value)
Example #7
0
 def test_affected(self):
     details = {
         'resolved': [
             {'qname': 'dog-1.0'},
             {'qname': 'cat-2.0'},
         ],
         'deps': [
             {'qname': 'kennel-1.0'},
         ]
     }
     self.assertEqual(
         Package.affected(details),
         ['dog-1.0', 'cat-2.0', 'kennel-1.0'])
Example #8
0
    def test_updated(self, tx_summary):
        # test
        ts_info = Mock()
        updated = Package.updated(ts_info)

        # validation
        states = (
            constants.TS_FAILED,
            constants.TS_INSTALL,
            constants.TS_TRUEINSTALL,
            constants.TS_UPDATE
        )
        tx_summary.assert_called_once_with(ts_info, states)
        self.assertEqual(updated, tx_summary.return_value)
Example #9
0
 def __impl(self, conduit, options):
     """
     Get package implementation.
     :param options: Passed options.
     :type options: dict
     :return: A package object.
     :rtype: Package
     """
     apply = options.get('apply', True)
     importkeys = options.get('importkeys', False)
     impl = Package(apply=apply,
                    importkeys=importkeys,
                    progress=PackageProgress(conduit))
     return impl
Example #10
0
    def test_tx_summary(self):
        repo_id = 'fedora'
        deps = [
            TxMember(constants.TS_INSTALL, repo_id, Pkg('D1', '1.0'), isDep=True),
            TxMember(constants.TS_INSTALL, repo_id, Pkg('D2', '1.0'), isDep=True),
            TxMember(constants.TS_INSTALL, repo_id, Pkg('D3', '1.0'), isDep=True),
        ]
        install = [
            TxMember(constants.TS_INSTALL, repo_id, Pkg('A', '1.0')),
            TxMember(constants.TS_INSTALL, repo_id, Pkg('B', '1.0')),
            TxMember(constants.TS_TRUEINSTALL, repo_id, Pkg('C', '1.0')),
        ]
        erase = [
            TxMember(constants.TS_ERASE, repo_id, Pkg('D', '1.0')),
        ]
        failed = [
            TxMember(constants.TS_FAILED, repo_id, Pkg('E', '1.0')),
            TxMember(constants.TS_FAILED, repo_id, Pkg('F', '1.0')),
        ]
        ts_info = install + deps + erase + failed
        package = Package()
        states = [
            constants.TS_FAILED,
            constants.TS_INSTALL,
            constants.TS_TRUEINSTALL
        ]

        # test
        report = package.tx_summary(ts_info, states)

        # validation
        _resolved = [
            {'epoch': '0', 'version': '1.0', 'name': 'A', 'release': '1',
             'arch': 'noarch', 'qname': 'A-1.0-1.noarch', 'repoid': 'fedora'},
            {'epoch': '0', 'version': '1.0', 'name': 'B', 'release': '1',
             'arch': 'noarch', 'qname': 'B-1.0-1.noarch', 'repoid': 'fedora'},
            {'epoch': '0', 'version': '1.0', 'name': 'C', 'release': '1',
             'arch': 'noarch', 'qname': 'C-1.0-1.noarch', 'repoid': 'fedora'},
            {'epoch': '0', 'version': '1.0', 'name': 'E', 'release': '1',
             'arch': 'noarch', 'qname': 'E-1.0-1.noarch', 'repoid': 'fedora'},
            {'epoch': '0', 'version': '1.0', 'name': 'F', 'release': '1',
             'arch': 'noarch', 'qname': 'F-1.0-1.noarch', 'repoid': 'fedora'},
        ]
        _failed = [
            {'epoch': '0', 'version': '1.0', 'name': 'E', 'release': '1',
             'arch': 'noarch', 'qname': 'E-1.0-1.noarch', 'repoid': 'fedora'},
            {'epoch': '0', 'version': '1.0', 'name': 'F', 'release': '1',
             'arch': 'noarch', 'qname': 'F-1.0-1.noarch', 'repoid': 'fedora'},
        ]
        _deps = [
            {'epoch': '0', 'version': '1.0', 'name': 'D1', 'release': '1',
             'arch': 'noarch', 'qname': 'D1-1.0-1.noarch', 'repoid': 'fedora'},
            {'epoch': '0', 'version': '1.0', 'name': 'D2', 'release': '1',
             'arch': 'noarch', 'qname': 'D2-1.0-1.noarch', 'repoid': 'fedora'},
            {'epoch': '0', 'version': '1.0', 'name': 'D3', 'release': '1',
             'arch': 'noarch', 'qname': 'D3-1.0-1.noarch', 'repoid': 'fedora'},
        ]

        self.assertEqual(report['resolved'], _resolved)
        self.assertEqual(report['deps'], _deps)
        self.assertEqual(report['failed'], _failed)