def test_get_external_repos_by_name(self):
     self.qp_execute_return_value = [{
         'id': 1,
         'name': 'ext_repo_1',
         'url': 'http://example.com/repo/'
     }]
     rv = kojihub.get_external_repos(info='ext_repo_1')
     self.assertEqual(len(self.queries), 1)
     self.assertLastQueryEqual(
         tables=['external_repo'],
         columns=['id', 'name', 'url'],
         joins=['external_repo_config ON external_repo_id = id'],
         clauses=['(active = TRUE)', 'name = %(info)s'],
         values={
             'clauses': ['(active = TRUE)', 'name = %(info)s'],
             'event': None,
             'fields': ['id', 'name', 'url'],
             'info': 'ext_repo_1',
             'joins': ['external_repo_config ON external_repo_id = id'],
             'queryOpts': None,
             'tables': ['external_repo'],
             'url': None
         },
         opts={})
     self.assertEqual(rv, [{
         'id': 1,
         'name': 'ext_repo_1',
         'url': 'http://example.com/repo/'
     }])
 def test_get_external_repos_by_id(self):
     self.qp_execute_return_value = [{'id': 1,
                                      'name': 'ext_repo_1',
                                      'url': 'http://example.com/repo/'}]
     rv = kojihub.get_external_repos(info=1)
     self.assertEqual(len(self.queries), 1)
     self.assertLastQueryEqual(tables=['external_repo'],
                               columns=['id', 'name', 'url'],
                               joins=[
                                   'external_repo_config ON external_repo_id = id'],
                               clauses=['(active = TRUE)',
                                        'id = %(info)i'],
                               values={'clauses': ['(active = TRUE)',
                                                   'id = %(info)i'],
                                       'event': None,
                                       'fields': ['id', 'name', 'url'],
                                       'info': 1,
                                       'joins': [
                                           'external_repo_config ON external_repo_id = id'],
                                       'queryOpts': None,
                                       'tables': ['external_repo'],
                                       'url': None},
                               opts={})
     self.assertEqual(rv, [{'id': 1,
                            'name': 'ext_repo_1',
                            'url': 'http://example.com/repo/'}])
 def test_get_external_repos_event(self):
     self.qp_execute_return_value = [{'id': 1,
                                      'name': 'ext_repo_1',
                                      'url': 'http://example.com/repo/'}]
     rv = kojihub.get_external_repos(event=1000)
     self.assertEqual(len(self.queries), 1)
     self.assertLastQueryEqual(tables=['external_repo'],
                               columns=['id', 'name', 'url'],
                               joins=[
                                   'external_repo_config'
                                   ' ON external_repo_id = id'],
                               clauses=[
                                   '(create_event <= 1000'
                                   ' AND ( revoke_event IS NULL'
                                   ' OR 1000 < revoke_event ))'],
                               values={'clauses': [
                                   '(create_event <= 1000'
                                   ' AND ( revoke_event IS NULL'
                                   ' OR 1000 < revoke_event ))'],
                                   'event': 1000,
                                   'fields': ['id', 'name', 'url'],
                                   'info': None,
                                   'joins': [
                                       'external_repo_config ON'
                                       ' external_repo_id = id'],
                                   'queryOpts': None,
                                   'tables': ['external_repo'],
                                   'url': None},
                               opts={})
     self.assertEqual(rv, [{'id': 1,
                            'name': 'ext_repo_1',
                            'url': 'http://example.com/repo/'}])
 def test_get_external_repos_event(self):
     self.qp_execute_return_value = [{
         'id': 1,
         'name': 'ext_repo_1',
         'url': 'http://example.com/repo/'
     }]
     rv = kojihub.get_external_repos(event=1000)
     self.assertEqual(len(self.queries), 1)
     self.assertLastQueryEqual(
         tables=['external_repo'],
         columns=['id', 'name', 'url'],
         joins=['external_repo_config'
                ' ON external_repo_id = id'],
         clauses=[
             '(create_event <= 1000'
             ' AND ( revoke_event IS NULL'
             ' OR 1000 < revoke_event ))'
         ],
         values={
             'clauses': [
                 '(create_event <= 1000'
                 ' AND ( revoke_event IS NULL'
                 ' OR 1000 < revoke_event ))'
             ],
             'event':
             1000,
             'fields': ['id', 'name', 'url'],
             'info':
             None,
             'joins': ['external_repo_config ON'
                       ' external_repo_id = id'],
             'queryOpts':
             None,
             'tables': ['external_repo'],
             'url':
             None
         },
         opts={})
     self.assertEqual(rv, [{
         'id': 1,
         'name': 'ext_repo_1',
         'url': 'http://example.com/repo/'
     }])
 def test_get_external_repos_wrong_type(self):
     info = {'info_key': 'info_value'}
     with self.assertRaises(koji.GenericError) as cm:
         kojihub.get_external_repos(info=info)
     self.assertEqual("Invalid type for lookup: %s" % type(info),
                      str(cm.exception))