Ejemplo n.º 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)
Ejemplo n.º 2
0
    def test_uninstall_not_applied(self, errased, 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.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)
        errased.assert_called_once_with(yum.return_value.tsInfo)
        affected.assert_called_once_with(errased.return_value)
        self.assertFalse(yum.return_value.processTransaction.called)
        self.assertEqual(details, errased.return_value)
Ejemplo n.º 3
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)
Ejemplo n.º 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)
Ejemplo n.º 5
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)
Ejemplo n.º 6
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)
Ejemplo n.º 7
0
    def test_update_no_transactions(self, updated, 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.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)
Ejemplo n.º 8
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'])
Ejemplo n.º 9
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)