PR#4068: Rework mocking of QueryProcessor in DBQueryTestCase
Merges #4068 https://pagure.io/koji/pull-request/4068 Fixes: #4071 https://pagure.io/koji/issue/4071 DBQueryTestCase class doesn't work for other hub modules Relates: #2758 https://pagure.io/koji/issue/2758 DBQueryTest doesn't clean mock env
This commit is contained in:
commit
f5c9ca95f6
98 changed files with 317 additions and 20 deletions
|
|
@ -26,6 +26,9 @@ class TestAddChannel(utils.CliTestCase):
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
@mock.patch('sys.stdout', new_callable=six.StringIO)
|
||||
def test_handle_add_channel(self, stdout):
|
||||
self.session.addChannel.return_value = self.channel_id
|
||||
|
|
|
|||
|
|
@ -25,6 +25,9 @@ class TestAddExternalRepo(utils.CliTestCase):
|
|||
self.tag = 'test-tag'
|
||||
self.priority = 10
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_add_external_repo_invalid_mode(self):
|
||||
mode = 'test-mode'
|
||||
arguments = ['--mode', mode]
|
||||
|
|
|
|||
|
|
@ -21,6 +21,9 @@ class TestAddGroup(utils.CliTestCase):
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
@mock.patch('sys.stdout', new_callable=six.StringIO)
|
||||
def test_handle_add_group(self, stdout):
|
||||
tag = 'tag'
|
||||
|
|
|
|||
|
|
@ -19,6 +19,9 @@ class TestAddHost(utils.CliTestCase):
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
@mock.patch('sys.stdout', new_callable=six.StringIO)
|
||||
def test_handle_add_host(self, stdout):
|
||||
host = 'host'
|
||||
|
|
|
|||
|
|
@ -19,6 +19,9 @@ class TestAddHostToChannel(utils.CliTestCase):
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
@mock.patch('sys.stdout', new_callable=six.StringIO)
|
||||
def test_handle_add_host_to_channel(self, stdout):
|
||||
host = 'host'
|
||||
|
|
|
|||
|
|
@ -21,6 +21,9 @@ class TestAddNotification(utils.CliTestCase):
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_handle_add_notification(self):
|
||||
self.session.getPackageID.return_value = 1234
|
||||
self.session.getTagID.return_value = 4321
|
||||
|
|
|
|||
|
|
@ -27,6 +27,9 @@ class TestAddPkg(utils.CliTestCase):
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
@mock.patch('sys.stdout', new_callable=six.StringIO)
|
||||
def test_handle_add_pkg(self, stdout):
|
||||
tag = 'tag'
|
||||
|
|
|
|||
|
|
@ -21,6 +21,9 @@ class TestAddTag(utils.CliTestCase):
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_handle_add_tag(self):
|
||||
"""Test handle_add_tag function"""
|
||||
# Case 1. no argument error
|
||||
|
|
|
|||
|
|
@ -56,6 +56,9 @@ class TestAddTagInheritance(utils.CliTestCase):
|
|||
'perm': None,
|
||||
'perm_id': None}
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_add_tag_inheritance_without_option(self):
|
||||
arguments = []
|
||||
expected = self.format_error_message(
|
||||
|
|
|
|||
|
|
@ -20,6 +20,9 @@ class TestAddTarget(utils.CliTestCase):
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_add_target_without_option(self,):
|
||||
expected = self.format_error_message(
|
||||
"Please specify a target name, a build tag, and destination tag")
|
||||
|
|
|
|||
|
|
@ -25,6 +25,9 @@ class TestAddUser(utils.CliTestCase):
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
@mock.patch('sys.stdout', new_callable=six.StringIO)
|
||||
def test_handle_add_user(self, stdout):
|
||||
"""Test handle_add_user function"""
|
||||
|
|
|
|||
|
|
@ -24,6 +24,9 @@ class TestAddVolume(utils.CliTestCase):
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
@mock.patch('sys.stdout', new_callable=six.StringIO)
|
||||
def test_handle_add_volume(self, stdout):
|
||||
"""Test handle_add_volume function"""
|
||||
|
|
|
|||
|
|
@ -24,6 +24,9 @@ class TestAssignTask(utils.CliTestCase):
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
@mock.patch('sys.stdout', new_callable=six.StringIO)
|
||||
def test_handle_assign_task(self, stdout):
|
||||
hostname = "host"
|
||||
|
|
|
|||
|
|
@ -25,6 +25,9 @@ class TestBlockGroup(utils.CliTestCase):
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_handle_block_group_nonexistent_tag(self):
|
||||
tag = 'nonexistent-tag'
|
||||
group = 'group'
|
||||
|
|
|
|||
|
|
@ -21,6 +21,9 @@ class TestBlockNotification(utils.CliTestCase):
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_handle_block_notification_non_exist_tag(self):
|
||||
tag = 'test-tag'
|
||||
arguments = ['--tag', tag]
|
||||
|
|
|
|||
|
|
@ -26,6 +26,9 @@ class TestBlockPkg(utils.CliTestCase):
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
@mock.patch('sys.stdout', new_callable=six.StringIO)
|
||||
def test_handle_block_pkg(self, stdout):
|
||||
tag = 'tag'
|
||||
|
|
|
|||
|
|
@ -48,6 +48,9 @@ https://docs.pagure.org/koji/HOWTO/#package-organization
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
@mock.patch('sys.stdout', new_callable=six.StringIO)
|
||||
def test_handle_build_from_srpm(self, stdout):
|
||||
args = [self.target, self.source_srpm]
|
||||
|
|
|
|||
|
|
@ -29,6 +29,9 @@ Note, that you can use global option --noauth for anonymous calls here
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
@mock.patch('sys.stdout', new_callable=six.StringIO)
|
||||
def test_handle_call(self, stdout):
|
||||
"""Test handle_call function"""
|
||||
|
|
|
|||
|
|
@ -35,6 +35,9 @@ class TestCancel(utils.CliTestCase):
|
|||
self.session.hub_version = (1, 33, 0)
|
||||
self.session.hub_version_str = '1.33.0'
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_anon_cancel(self):
|
||||
args = ['123']
|
||||
self.activate_session_mock.side_effect = koji.GenericError
|
||||
|
|
|
|||
|
|
@ -31,6 +31,9 @@ class TestChainBuild(utils.CliTestCase):
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
@mock.patch('sys.stdout', new_callable=six.StringIO)
|
||||
def test_handle_chain_build(self, stdout):
|
||||
target = 'target'
|
||||
|
|
|
|||
|
|
@ -29,6 +29,9 @@ class TestDisableChannel(utils.CliTestCase):
|
|||
'name': 'test-channel'}
|
||||
]
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def __vm(self, result):
|
||||
m = koji.VirtualCall('mcall_method', [], {})
|
||||
if isinstance(result, dict) and result.get('faultCode'):
|
||||
|
|
|
|||
|
|
@ -21,6 +21,9 @@ class TestDisableHost(utils.CliTestCase):
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_handle_disable_host_no_such_host(self):
|
||||
"""Test %s function""" % handle_disable_host.__name__
|
||||
self.session.getHost.return_value = None
|
||||
|
|
|
|||
|
|
@ -24,6 +24,9 @@ class TestDisableUser(utils.CliTestCase):
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_handle_disable_user_no_argument(self):
|
||||
"""Test handle_disable_user function"""
|
||||
expected = self.format_error_message(
|
||||
|
|
|
|||
|
|
@ -24,6 +24,9 @@ class TestEditExternalRepo(utils.CliTestCase):
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_handle_edit_external_repo_error(self):
|
||||
"""Test handle_edit_external_repo function"""
|
||||
# [(expected, args),...]
|
||||
|
|
|
|||
|
|
@ -28,6 +28,9 @@ class TestEditHost(utils.CliTestCase):
|
|||
self.description = 'description'
|
||||
self.comment = 'comment'
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
@mock.patch('sys.stdout', new_callable=six.StringIO)
|
||||
def test_handle_edit_host(self, stdout):
|
||||
host_info = mock.ANY
|
||||
|
|
|
|||
|
|
@ -19,6 +19,9 @@ class TestEditNotification(utils.CliTestCase):
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_handle_edit_notification(self):
|
||||
self.session.getPackageID.return_value = 1234
|
||||
self.session.getTagID.return_value = 4321
|
||||
|
|
|
|||
|
|
@ -26,6 +26,9 @@ class TestEditPermission(utils.CliTestCase):
|
|||
self.perm = 'test-perm'
|
||||
self.description = 'test-description'
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_handle_edit_permission_argument_error(self):
|
||||
expected = self.format_error_message("Please specify a permission and a description")
|
||||
for args in [[], [self.perm]]:
|
||||
|
|
|
|||
|
|
@ -30,6 +30,9 @@ class TestEditTag(utils.CliTestCase):
|
|||
self.extra = {'extraA': 'A', 'extraB': True}
|
||||
self.remove_extra = ['extraC', 'extraD']
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
@mock.patch('sys.stdout', new_callable=six.StringIO)
|
||||
def test_handle_edit_tag_1(self, stdout):
|
||||
args = [self.tag]
|
||||
|
|
|
|||
|
|
@ -42,6 +42,9 @@ class TestEditTarget(utils.CliTestCase):
|
|||
self.new_dest_tag = 'new-dest-tag'
|
||||
self.new_build_tag = 'new-build-tag'
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_edit_target_without_option(self):
|
||||
expected = self.format_error_message("Please specify a build target")
|
||||
self.assert_system_exit(
|
||||
|
|
|
|||
|
|
@ -26,6 +26,9 @@ class TestEditUser(utils.CliTestCase):
|
|||
self.user = 'user'
|
||||
self.rename = 'user2'
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
@mock.patch('sys.stdout', new_callable=six.StringIO)
|
||||
def test_handle_edit_user(self, stdout):
|
||||
args = [self.user]
|
||||
|
|
|
|||
|
|
@ -30,6 +30,9 @@ class TestEnableChannel(utils.CliTestCase):
|
|||
'name': 'test-channel'}
|
||||
]
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def __vm(self, result):
|
||||
m = koji.VirtualCall('mcall_method', [], {})
|
||||
if isinstance(result, dict) and result.get('faultCode'):
|
||||
|
|
|
|||
|
|
@ -22,6 +22,9 @@ class TestEnableHost(utils.CliTestCase):
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_handle_enable_host_no_such_host(self):
|
||||
"""Test %s function""" % handle_enable_host.__name__
|
||||
|
||||
|
|
|
|||
|
|
@ -21,6 +21,9 @@ class TestEnableUser(utils.CliTestCase):
|
|||
""" % (self.progname, self.progname)
|
||||
self.username = 'user'
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_handle_enable_user_no_argument(self):
|
||||
"""Test handle_enable_user function"""
|
||||
expected = self.format_error_message("You must specify the username of the user to enable")
|
||||
|
|
|
|||
|
|
@ -19,6 +19,9 @@ class TestFreeTask(utils.CliTestCase):
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_free_task_without_arg(self):
|
||||
expected = self.format_error_message('please specify at least one task_id')
|
||||
self.assert_system_exit(
|
||||
|
|
|
|||
|
|
@ -22,6 +22,9 @@ class TestGrantCGAccess(utils.CliTestCase):
|
|||
self.cg = 'cg'
|
||||
self.user = 'user'
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_handle_grant_cg_access_arg_error(self):
|
||||
"""Test handle_grant_cg_access function"""
|
||||
expected = self.format_error_message("Please specify a user and content generator")
|
||||
|
|
|
|||
|
|
@ -26,6 +26,9 @@ class TestGrantPermission(utils.CliTestCase):
|
|||
self.perm = 'createuser'
|
||||
self.user = 'user'
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_handle_grant_permission_argument_error(self):
|
||||
expected = self.format_error_message(
|
||||
"Please specify a permission and at least one user")
|
||||
|
|
|
|||
|
|
@ -39,6 +39,9 @@ class TestHello(utils.CliTestCase):
|
|||
""" % (self.progname, self.progname)
|
||||
self.huburl = "https://%s.local/%shub" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
@mock.patch('sys.stdout', new_callable=six.StringIO)
|
||||
@mock.patch('koji_cli.commands._printable_unicode')
|
||||
def test_handle_moshimoshi(self, print_unicode_mock, stdout):
|
||||
|
|
|
|||
|
|
@ -84,6 +84,9 @@ class TestImport(utils.CliTestCase):
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def __do_import_test(self, options, session, arguments, **kwargs):
|
||||
expected = kwargs.get('expected', None)
|
||||
rpm_header = kwargs.get('rpm_header', {})
|
||||
|
|
|
|||
|
|
@ -23,6 +23,9 @@ class TestImportArchive(utils.CliTestCase):
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_import_archive_without_option(self):
|
||||
expected = self.format_error_message(
|
||||
"You must specify a build ID or N-V-R and an archive to import")
|
||||
|
|
|
|||
|
|
@ -34,6 +34,9 @@ class TestImportCG(utils.CliTestCase):
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
@mock.patch('sys.stdout', new_callable=six.StringIO)
|
||||
@mock.patch('koji_cli.commands._progress_callback')
|
||||
@mock.patch('koji.json')
|
||||
|
|
|
|||
|
|
@ -38,6 +38,9 @@ class TestImportComps(utils.CliTestCase):
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
@mock.patch('sys.stdout', new_callable=six.StringIO)
|
||||
@mock.patch('koji_cli.commands.libcomps')
|
||||
@mock.patch('koji_cli.commands._import_comps')
|
||||
|
|
|
|||
|
|
@ -76,6 +76,9 @@ class TestImportSIG(utils.CliTestCase):
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
@mock.patch('sys.stderr', new_callable=six.StringIO)
|
||||
@mock.patch('sys.stdout', new_callable=six.StringIO)
|
||||
@mock.patch('koji.rip_rpm_sighdr')
|
||||
|
|
|
|||
|
|
@ -19,6 +19,9 @@ class TestListApi(utils.CliTestCase):
|
|||
self.options = mock.MagicMock()
|
||||
self.ensure_connection = mock.patch('koji_cli.commands.ensure_connection').start()
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
@mock.patch('sys.stdout', new_callable=six.StringIO)
|
||||
def test_anon_handle_list_api_all_method(self, stdout):
|
||||
"""Test anon_handle_list_api function"""
|
||||
|
|
|
|||
|
|
@ -22,6 +22,9 @@ class TestListBuilds(utils.CliTestCase):
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_list_buildroot_without_args(self):
|
||||
self.assert_system_exit(
|
||||
anon_handle_list_buildroot,
|
||||
|
|
|
|||
|
|
@ -64,6 +64,9 @@ class TestListChannels(utils.CliTestCase):
|
|||
]]
|
||||
]
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
@mock.patch('sys.stdout', new_callable=StringIO)
|
||||
def test_list_channels_not_quiet(self, stdout):
|
||||
self.session.listChannels.return_value = self.list_channels
|
||||
|
|
|
|||
|
|
@ -23,6 +23,9 @@ class TestListNotifications(utils.CliTestCase):
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
@mock.patch('sys.stdout', new_callable=StringIO)
|
||||
def test_list_notifications(self, stdout):
|
||||
self.session.getBuildNotifications.return_value = [
|
||||
|
|
|
|||
|
|
@ -36,6 +36,9 @@ class TestListPermissions(utils.CliTestCase):
|
|||
self.user = 'tester'
|
||||
self.userinfo = {'id': 101, 'name': self.user}
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_handle_list_permissions_arg_error(self):
|
||||
"""Test handle_list_permissions argument error (no argument is required)"""
|
||||
expected = self.format_error_message("This command takes no arguments")
|
||||
|
|
|
|||
|
|
@ -52,6 +52,9 @@ class TestListPkgs(utils.CliTestCase):
|
|||
'perm': None,
|
||||
'perm_id': None}
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_list_pkgs_non_exist_tag(self):
|
||||
self.session.getTag.return_value = None
|
||||
self.assert_system_exit(
|
||||
|
|
|
|||
|
|
@ -20,6 +20,9 @@ class TestListSigned(utils.CliTestCase):
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def __vm(self, result):
|
||||
m = koji.VirtualCall('mcall_method', [], {})
|
||||
if isinstance(result, dict) and result.get('faultCode'):
|
||||
|
|
|
|||
|
|
@ -38,6 +38,9 @@ class TestListTags(utils.CliTestCase):
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_list_tags_non_exist_package(self):
|
||||
pkg = 'test-pkg'
|
||||
self.session.getPackage.return_value = None
|
||||
|
|
|
|||
|
|
@ -65,6 +65,9 @@ config_opts['macros']['%distribution'] = 'Koji Testing'
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
@mock.patch('sys.stdout', new_callable=six.StringIO)
|
||||
def test_handle_mock_config_buildroot_option(self, stdout):
|
||||
"""Test anon_handle_mock_config buildroot options"""
|
||||
|
|
|
|||
|
|
@ -18,6 +18,9 @@ class TestRemoveExternalRepo(utils.CliTestCase):
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_remove_external_repo_help(self):
|
||||
self.assert_help(
|
||||
handle_remove_external_repo,
|
||||
|
|
|
|||
|
|
@ -28,6 +28,9 @@ class TestRemovePkg(utils.CliTestCase):
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
@mock.patch('sys.stderr', new_callable=six.StringIO)
|
||||
def test_handle_remove_pkg(self, stderr):
|
||||
tag = 'tag'
|
||||
|
|
|
|||
|
|
@ -50,6 +50,9 @@ class TestRemoveTagInheritance(utils.CliTestCase):
|
|||
'perm': None,
|
||||
'perm_id': None}
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_remove_tag_inheritance_without_option(self):
|
||||
expected = self.format_error_message(
|
||||
"This command takes at least one argument: a tag name or ID")
|
||||
|
|
|
|||
|
|
@ -24,6 +24,9 @@ class TestRestartHosts(utils.CliTestCase):
|
|||
self.watch_tasks_mock = mock.patch('koji_cli.commands.watch_tasks').start()
|
||||
self.task_id = 101
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_handle_restart_hosts_force_options(self):
|
||||
"""Test %s function with --force option""" % handle_restart_hosts.__name__
|
||||
arguments = ['--force']
|
||||
|
|
|
|||
|
|
@ -25,6 +25,9 @@ class TestSetTaskPriority(utils.CliTestCase):
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
@mock.patch('sys.stderr', new_callable=six.StringIO)
|
||||
@mock.patch('sys.stdout', new_callable=six.StringIO)
|
||||
def test_handle_set_task_priority(self, stdout, stderr):
|
||||
|
|
|
|||
|
|
@ -52,6 +52,9 @@ class TestShowGroups(utils.CliTestCase):
|
|||
'group_id': 3}
|
||||
]
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_show_groups_incorrect_num_of_args(self):
|
||||
arguments = []
|
||||
self.assert_system_exit(
|
||||
|
|
|
|||
|
|
@ -34,6 +34,9 @@ class TestUntagBuild(utils.CliTestCase):
|
|||
'name': 'test-package', 'release': '1.f35', 'tag.name': 'test-tag',
|
||||
'tag_id': 460, 'version': '1.1'}]}
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def __vm(self, result):
|
||||
m = koji.VirtualCall('mcall_method', [], {})
|
||||
if isinstance(result, dict) and result.get('faultCode'):
|
||||
|
|
|
|||
|
|
@ -21,6 +21,9 @@ class TestWatchLogs(utils.CliTestCase):
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_handle_watch_logs_help(self):
|
||||
self.assert_help(
|
||||
anon_handle_watch_logs,
|
||||
|
|
|
|||
|
|
@ -39,6 +39,9 @@ class TestWinBuild(utils.CliTestCase):
|
|||
%s: error: {message}
|
||||
""" % (self.progname, self.progname)
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_win_build_without_option(self):
|
||||
self.assert_system_exit(
|
||||
handle_win_build,
|
||||
|
|
|
|||
|
|
@ -12,6 +12,9 @@ class TestAddGroupMember(unittest.TestCase):
|
|||
self.exports = kojihub.RootExports()
|
||||
self.get_user = mock.patch('kojihub.kojihub.get_user').start()
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_non_exist_user(self):
|
||||
data = [{'id': 3,
|
||||
'name': 'test-group',
|
||||
|
|
|
|||
|
|
@ -19,6 +19,9 @@ class TestAddVolume(unittest.TestCase):
|
|||
self.context.session.assertPerm = mock.MagicMock()
|
||||
self.context.session.assertLogin = mock.MagicMock()
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_add_volume_wrong_format(self):
|
||||
volume_name = 'volume-name+'
|
||||
|
||||
|
|
|
|||
|
|
@ -18,6 +18,9 @@ class TestCreateImageBuild(unittest.TestCase):
|
|||
self.inserts = []
|
||||
self.insert_execute = mock.MagicMock()
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def getInsert(self, *args, **kwargs):
|
||||
insert = IP(*args, **kwargs)
|
||||
insert.execute = self.insert_execute
|
||||
|
|
|
|||
|
|
@ -32,6 +32,9 @@ class TestCreateMavenBuild(unittest.TestCase):
|
|||
}
|
||||
self.build_info = 'test-build-11-12'
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def getInsert(self, *args, **kwargs):
|
||||
insert = IP(*args, **kwargs)
|
||||
insert.execute = self.insert_execute
|
||||
|
|
|
|||
|
|
@ -24,6 +24,9 @@ class TestCreateUser(unittest.TestCase):
|
|||
self.user_info_krb = {'id': 1, 'krb_principals': ['test_user@fedora.org'],
|
||||
'name': self.user_name, 'status': 0, 'usertype': 0}
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_create_user_wrong_format(self):
|
||||
user_name = 'test-user+'
|
||||
|
||||
|
|
|
|||
|
|
@ -32,6 +32,9 @@ class TestCreateWinBuild(unittest.TestCase):
|
|||
}
|
||||
self.build_info = 'test-build-11-12'
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def getInsert(self, *args, **kwargs):
|
||||
insert = IP(*args, **kwargs)
|
||||
insert.execute = self.insert_execute
|
||||
|
|
|
|||
|
|
@ -28,6 +28,9 @@ class TestDeleteBuildTarget(unittest.TestCase):
|
|||
# start with "assert"
|
||||
self.context_db.session.assertLogin = mock.MagicMock()
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_non_exist_target(self):
|
||||
build_target = 'build-target'
|
||||
self.lookup_build_target.return_value = None
|
||||
|
|
|
|||
|
|
@ -24,6 +24,9 @@ class TestDisableChannel(unittest.TestCase):
|
|||
self.updates = []
|
||||
self.channelname = 'test-channel'
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_non_exist_channel(self):
|
||||
self.get_channel.return_value = None
|
||||
with self.assertRaises(koji.GenericError) as cm:
|
||||
|
|
|
|||
|
|
@ -12,6 +12,9 @@ class TestDisableUser(unittest.TestCase):
|
|||
self.exports = kojihub.RootExports()
|
||||
self.get_user = mock.patch('kojihub.kojihub.get_user').start()
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_non_exist_user(self):
|
||||
username = 'test-user'
|
||||
self.get_user.return_value = None
|
||||
|
|
|
|||
|
|
@ -24,6 +24,9 @@ class TestEditPermission(unittest.TestCase):
|
|||
self.perm_info = {'id': 1, 'name': self.perm_name}
|
||||
self.description = 'test-description'
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_edit_permission_non_exist_permission(self):
|
||||
self.lookup_perm.side_effect = koji.GenericError
|
||||
with self.assertRaises(koji.GenericError):
|
||||
|
|
|
|||
|
|
@ -24,6 +24,9 @@ class TestEnableChannel(unittest.TestCase):
|
|||
self.updates = []
|
||||
self.channelname = 'test-channel'
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_non_exist_channel(self):
|
||||
|
||||
self.get_channel.return_value = None
|
||||
|
|
|
|||
|
|
@ -12,6 +12,9 @@ class TestEnableUser(unittest.TestCase):
|
|||
self.exports = kojihub.RootExports()
|
||||
self.get_user = mock.patch('kojihub.kojihub.get_user').start()
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_non_exist_user(self):
|
||||
username = 'test-user'
|
||||
self.get_user.return_value = None
|
||||
|
|
|
|||
|
|
@ -24,6 +24,9 @@ class TestFindBuildId(unittest.TestCase):
|
|||
self.queries = []
|
||||
self.query_singleValue = mock.MagicMock()
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_non_exist_build_dict(self):
|
||||
build = {
|
||||
'name': 'test_name',
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@ class TestGetRPMDeps(unittest.TestCase):
|
|||
self.get_rpm = mock.patch('kojihub.kojihub.get_rpm').start()
|
||||
self.get_build = mock.patch('kojihub.kojihub.get_build').start()
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_getRPMDeps_no_rpminfo(self):
|
||||
def mock_get_rpm(rpmID, strict=False):
|
||||
if strict:
|
||||
|
|
|
|||
|
|
@ -10,6 +10,9 @@ class TestGetBuildNotifications(unittest.TestCase):
|
|||
self.get_user = mock.patch('kojihub.kojihub.get_user').start()
|
||||
self.get_build_notifications = mock.patch('kojihub.kojihub.get_build_notifications').start()
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_loggedin_user(self):
|
||||
self.get_user.return_value = {'id': 1}
|
||||
kojihub.RootExports().getBuildNotifications(None)
|
||||
|
|
|
|||
|
|
@ -10,6 +10,9 @@ class TestGetBuildroot(unittest.TestCase):
|
|||
self.query_buildroots = mock.patch('kojihub.kojihub.query_buildroots').start()
|
||||
self.buildroot_id = 1
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_empty_buildroots_without_strict(self):
|
||||
self.query_buildroots.return_value = []
|
||||
rv = kojihub.get_buildroot(self.buildroot_id, strict=False)
|
||||
|
|
|
|||
|
|
@ -17,6 +17,9 @@ class TestGetChangelogEntries(unittest.TestCase):
|
|||
self.cursor = mock.MagicMock()
|
||||
self.os_path_exists = mock.patch('os.path.exists').start()
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_non_exist_build(self):
|
||||
build_id = 1
|
||||
self.cursor.fetchone.return_value = None
|
||||
|
|
|
|||
|
|
@ -12,6 +12,9 @@ class TestGetExternalRepo(unittest.TestCase):
|
|||
self.get_external_repos = mock.patch('kojihub.kojihub.get_external_repos').start()
|
||||
self.exports = kojihub.RootExports()
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_non_exist_repo_with_strict(self):
|
||||
repo = 'test-repo'
|
||||
self.get_external_repos.return_value = []
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@ class TestGetVolume(unittest.TestCase):
|
|||
self.exports = kojihub.RootExports()
|
||||
self.lookup_name = mock.patch('kojihub.kojihub.lookup_name').start()
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_non_exist_volume_with_strict(self):
|
||||
volume = ['test-volume']
|
||||
self.lookup_name.return_value = None
|
||||
|
|
|
|||
|
|
@ -32,6 +32,9 @@ class TestGrantPermission(unittest.TestCase):
|
|||
'status': 0, 'usertype': 0}
|
||||
self.perm_info = {'id': 1, 'name': self.perms_name}
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_grant_permission_wrong_format(self):
|
||||
perms_name = 'test-perms+'
|
||||
|
||||
|
|
|
|||
|
|
@ -61,6 +61,9 @@ class TestGroupPkglist(unittest.TestCase):
|
|||
self.context_db.event_id = 42
|
||||
self.context_db.session.user_id = 24
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_grp_pkg_add_previous_changed(self):
|
||||
self.lookup_tag.return_value = self.taginfo
|
||||
self.lookup_group.return_value = self.groupinfo
|
||||
|
|
|
|||
|
|
@ -61,6 +61,9 @@ class TestGroupReqlist(unittest.TestCase):
|
|||
self.context_db.event_id = 42
|
||||
self.context_db.session.user_id = 24
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_grp_req_add_not_previous(self):
|
||||
self.lookup_tag.return_value = self.taginfo
|
||||
self.lookup_group.side_effect = [self.groupinfo, self.reqinfo]
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ class TestImportImageInternal(unittest.TestCase):
|
|||
|
||||
def tearDown(self):
|
||||
shutil.rmtree(self.tempdir)
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_basic(self):
|
||||
task = mock.MagicMock()
|
||||
|
|
|
|||
|
|
@ -86,6 +86,9 @@ class TestListBuilds(unittest.TestCase):
|
|||
'volume_name': 'DEFAULT',
|
||||
'draft': False},]
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_wrong_package(self):
|
||||
package = 'test-package'
|
||||
self.get_package_id.return_value = None
|
||||
|
|
|
|||
|
|
@ -27,6 +27,9 @@ class TestListTagged(unittest.TestCase):
|
|||
'release': '1.fc35', 'state': 1, 'tag_id': 1, 'tag_name': 'test-tag',
|
||||
'task_id': None, 'version': '2.52', 'volume_id': 0, 'volume_name': 'DEFAULT'}]
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def getQuery(self, *args, **kwargs):
|
||||
query = QP(*args, **kwargs)
|
||||
query.execute = mock.MagicMock()
|
||||
|
|
|
|||
|
|
@ -48,6 +48,9 @@ class TestListTaggedArchives(unittest.TestCase):
|
|||
'volume_name': 'DEFAULT'}]
|
||||
]
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def getQuery(self, *args, **kwargs):
|
||||
query = QP(*args, **kwargs)
|
||||
query.execute = mock.MagicMock()
|
||||
|
|
|
|||
|
|
@ -47,6 +47,9 @@ class TestListTaggedRPMS(unittest.TestCase):
|
|||
'volume_name': 'DEFAULT'}]
|
||||
]
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def getQuery(self, *args, **kwargs):
|
||||
query = QP(*args, **kwargs)
|
||||
query.execute = mock.MagicMock()
|
||||
|
|
|
|||
|
|
@ -32,6 +32,9 @@ class TestHost(unittest.TestCase):
|
|||
self.queries = []
|
||||
self.query_execute = mock.MagicMock()
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
@mock.patch('kojihub.kojihub.context')
|
||||
def test_instantiation_not_a_host(self, context):
|
||||
context.session.getHostId.return_value = None
|
||||
|
|
|
|||
|
|
@ -15,6 +15,9 @@ class DummyExports(object):
|
|||
|
||||
class TestMulticall(unittest.TestCase):
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_multicall(self):
|
||||
self.context_db = mock.patch('kojihub.db.context').start()
|
||||
kojixmlrpc.kojihub = mock.MagicMock()
|
||||
|
|
|
|||
|
|
@ -26,6 +26,9 @@ class TestNewMavenBuild(unittest.TestCase):
|
|||
'build_id': 2,
|
||||
}
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def getInsert(self, *args, **kwargs):
|
||||
insert = IP(*args, **kwargs)
|
||||
insert.execute = self.insert_execute
|
||||
|
|
|
|||
|
|
@ -31,6 +31,9 @@ class TestNewWinBuild(unittest.TestCase):
|
|||
'extra': {'extra_key': 'extra_value'},
|
||||
}
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def getInsert(self, *args, **kwargs):
|
||||
insert = IP(*args, **kwargs)
|
||||
insert.execute = self.insert_execute
|
||||
|
|
|
|||
|
|
@ -20,6 +20,9 @@ class TestQueryBuildroots(unittest.TestCase):
|
|||
self.queries = []
|
||||
self.query_execute = mock.MagicMock()
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_query_buildroots(self):
|
||||
self.query_execute.side_effect = [[7], [7], [7], []]
|
||||
self.repo_references.return_value = [{'id': 7, 'host_id': 1, 'create_event': 333,
|
||||
|
|
|
|||
|
|
@ -35,6 +35,9 @@ class TestQueryRPMSigs(unittest.TestCase):
|
|||
'size': 25644,
|
||||
'version': '3.3'}
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_rpm_dict(self):
|
||||
rinfo_dict = {
|
||||
'arch': 'x86_64',
|
||||
|
|
|
|||
|
|
@ -14,6 +14,9 @@ class TestRestartHosts(unittest.TestCase):
|
|||
self.context.session.assertPerm = mock.MagicMock()
|
||||
self.make_task = mock.patch('kojihub.kojihub.make_task').start()
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_options_is_none(self):
|
||||
self.make_task.return_value = 13
|
||||
rv = self.exports.restartHosts()
|
||||
|
|
|
|||
|
|
@ -23,6 +23,9 @@ class TestSetUserStatus(unittest.TestCase):
|
|||
self.context.session.assertPerm = mock.MagicMock()
|
||||
self.update_execute = mock.MagicMock()
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_wrong_status(self):
|
||||
status = 111
|
||||
with self.assertRaises(koji.GenericError) as cm:
|
||||
|
|
|
|||
|
|
@ -15,6 +15,9 @@ class TestVerifyNameInternal(unittest.TestCase):
|
|||
self.context.opts = {'MaxNameLengthInternal': 15,
|
||||
'RegexNameInternal.compiled': re.compile('^[A-Za-z0-9/_.+-]+$')}
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_verify_name_internal_integer_type(self):
|
||||
expected_error = "Name should be string"
|
||||
with self.assertRaises(koji.GenericError) as cm:
|
||||
|
|
@ -43,6 +46,9 @@ class TestVerifyUser(unittest.TestCase):
|
|||
self.context.opts = {'MaxNameLengthInternal': 15,
|
||||
'RegexUserName.compiled': re.compile('^[A-Za-z0-9/_.@-]+$')}
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_verify_user_type_name(self):
|
||||
expected_error = "Name should be string"
|
||||
with self.assertRaises(koji.GenericError) as cm:
|
||||
|
|
|
|||
|
|
@ -2,46 +2,51 @@ import mock
|
|||
import unittest
|
||||
|
||||
import kojihub
|
||||
import kojihub.db
|
||||
|
||||
QP = kojihub.QueryProcessor
|
||||
|
||||
def get_qp_init(testcase):
|
||||
orig_qp_init = kojihub.db.QueryProcessor.__init__
|
||||
|
||||
def my_qp_init(_query, *a, **kw):
|
||||
_query.execute = mock.MagicMock()
|
||||
_query.execute.return_value = testcase.qp_execute_return_value
|
||||
_query.execute.side_effect = testcase.qp_execute_side_effect
|
||||
_query.executeOne = mock.MagicMock()
|
||||
_query.executeOne.return_value = testcase.qp_execute_one_return_value
|
||||
_query.executeOne.side_effect = testcase.qp_execute_one_side_effect
|
||||
_query.singleValue = mock.MagicMock()
|
||||
_query.singleValue.return_value = testcase.qp_single_value_return_value
|
||||
_query.iterate = mock.MagicMock()
|
||||
_query.iterate.return_value = testcase.qp_iterate_return_value
|
||||
testcase.queries.append(_query)
|
||||
return orig_qp_init(_query, *a, **kw)
|
||||
|
||||
return my_qp_init
|
||||
|
||||
|
||||
class DBQueryTestCase(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
mock.patch.stopall()
|
||||
self.qp_execute_return_value = []
|
||||
self.qp_execute_side_effect = None
|
||||
self.qp_execute_one_return_value = []
|
||||
self.qp_execute_one_side_effect = None
|
||||
self.qp_single_value_return_value = None
|
||||
self.qp_iterate_return_value = None
|
||||
self.QueryProcessor = mock.patch('kojihub.kojihub.QueryProcessor',
|
||||
side_effect=self.get_query).start()
|
||||
|
||||
# patch init to catch queries regardless of how QP is imported
|
||||
new_init = get_qp_init(self)
|
||||
self.qp_init = mock.patch('kojihub.db.QueryProcessor.__init__', new=new_init).start()
|
||||
|
||||
self.queries = []
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
self.reset_query()
|
||||
|
||||
def reset_query(self):
|
||||
del self.queries[:]
|
||||
|
||||
def get_query(self, *args, **kwargs):
|
||||
query = QP(*args, **kwargs)
|
||||
query.execute = mock.MagicMock()
|
||||
query.execute.return_value = self.qp_execute_return_value
|
||||
query.execute.side_effect = self.qp_execute_side_effect
|
||||
query.executeOne = mock.MagicMock()
|
||||
query.executeOne.return_value = self.qp_execute_one_return_value
|
||||
query.executeOne.side_effect = self.qp_execute_one_side_effect
|
||||
query.singleValue = mock.MagicMock()
|
||||
query.singleValue.return_value = self.qp_single_value_return_value
|
||||
query.iterate = mock.MagicMock()
|
||||
query.iterate.return_value = self.qp_iterate_return_value
|
||||
self.queries.append(query)
|
||||
return query
|
||||
|
||||
def assertQueryEqual(self, query, **kwargs):
|
||||
for k, v in kwargs.items():
|
||||
self.assertEqual(getattr(query, k, None), v)
|
||||
|
|
|
|||
|
|
@ -44,6 +44,9 @@ class TestAuthSession(unittest.TestCase):
|
|||
# start with "assert"
|
||||
self.context.session.assertLogin = mock.MagicMock()
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_instance(self):
|
||||
"""Simple kojihub.auth.Session instance"""
|
||||
self.context.opts = {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue