def test_handle_remove_pkg_multi_pkg(self, activate_session_mock, stdout): tag = 'tag' dsttag = {'name': tag, 'id': 1} packages = ['package1', 'package2', 'package3'] args = [tag] + packages kwargs = {'force': None} options = mock.MagicMock() # Mock out the xmlrpc server session = mock.MagicMock() session.getTag.return_value = dsttag session.listPackages.return_value = [{ 'package_name': 'package1', 'package_id': 1 }, { 'package_name': 'package2', 'package_id': 2 }, { 'package_name': 'package3', 'package_id': 3 }, { 'package_name': 'other_package', 'package_id': 4 }] # Run it and check immediate output # args: tag, package1, package2, package3 # expected: success rv = cli.handle_remove_pkg(options, session, args) actual = stdout.getvalue() expected = '' self.assertMultiLineEqual(actual, expected) # Finally, assert that things were called as we expected. activate_session_mock.assert_called_once_with(session) self.assertEqual(session.mock_calls, [ call.getTag(tag), call.listPackages(tagID=dsttag['id']), call.packageListRemove(tag, packages[0], **kwargs), call.packageListRemove(tag, packages[1], **kwargs), call.packageListRemove(tag, packages[2], **kwargs), call.multiCall(strict=True) ]) self.assertNotEqual(rv, 1)
def test_handle_remove_pkg_force(self, activate_session_mock, stdout): tag = 'tag' dsttag = {'name': tag, 'id': 1} packages = ['package1', 'package2', 'package3'] args = ['--force', tag] + packages kwargs = {'force': True} options = mock.MagicMock() # Mock out the xmlrpc server session = mock.MagicMock() session.getTag.return_value = dsttag session.listPackages.return_value = [ {'package_name': 'package1', 'package_id': 1}, {'package_name': 'package2', 'package_id': 2}, {'package_name': 'package3', 'package_id': 3}, {'package_name': 'other_package', 'package_id': 4} ] # Run it and check immediate output # args: --force, tag, package1, package2, package3 # expected: success rv = cli.handle_remove_pkg(options, session, args) actual = stdout.getvalue() expected = '' self.assertMultiLineEqual(actual, expected) # Finally, assert that things were called as we expected. activate_session_mock.assert_called_once_with(session) self.assertEqual( session.mock_calls, [ call.getTag(tag), call.listPackages( tagID=dsttag['id']), call.packageListRemove( tag, packages[0], **kwargs), call.packageListRemove( tag, packages[1], **kwargs), call.packageListRemove( tag, packages[2], **kwargs), call.multiCall( strict=True)]) self.assertNotEqual(rv, 1)