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)
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)
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)
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)
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)
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)
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'])
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)
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
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)