Merge "Fix SQL error when querying for tuples"

This commit is contained in:
Zuul 2019-04-05 17:22:08 +00:00 committed by Gerrit Code Review
commit 87a44e08f6
3 changed files with 80 additions and 1 deletions

View File

@ -57,6 +57,12 @@
name: library-user
requires: libraries
- job:
name: both-user
requires:
- images
- libraries
- job:
name: hold
@ -83,3 +89,10 @@
queue: integrated
jobs:
- image-user
- project:
name: org/project3
check:
jobs:
- both-user
- hold

View File

@ -5521,6 +5521,28 @@ class TestProvidesRequires(ZuulDBTestCase):
changes='1,1 2,1 3,1'),
dict(name='hold', result='SUCCESS', changes='1,1 2,1 3,1'),
], ordered=False)
D = self.fake_gerrit.addFakeChange('org/project3', 'master', 'D')
D.data['commitMessage'] = '%s\n\nDepends-On: %s\n' % (
D.subject, B.data['id'])
self.fake_gerrit.addEvent(D.getPatchsetCreatedEvent(1))
self.waitUntilSettled()
self.assertHistory([
dict(name='image-builder', result='SUCCESS', changes='1,1'),
dict(name='library-builder', result='SUCCESS', changes='1,1'),
dict(name='hold', result='SUCCESS', changes='1,1'),
dict(name='image-builder', result='SUCCESS', changes='1,1 2,1'),
dict(name='library-builder', result='SUCCESS', changes='1,1 2,1'),
dict(name='hold', result='SUCCESS', changes='1,1 2,1'),
dict(name='image-user', result='SUCCESS', changes='1,1 2,1 3,1'),
dict(name='library-user', result='SUCCESS',
changes='1,1 2,1 3,1'),
dict(name='hold', result='SUCCESS', changes='1,1 2,1 3,1'),
dict(name='both-user', result='SUCCESS', changes='1,1 2,1 4,1'),
dict(name='hold', result='SUCCESS', changes='1,1 2,1 4,1'),
], ordered=False)
image_user = self.getJobFromHistory('image-user')
self.assertEqual(
image_user.parameters['zuul']['artifacts'],
@ -5569,6 +5591,50 @@ class TestProvidesRequires(ZuulDBTestCase):
'type': 'library_object',
}
}])
both_user = self.getJobFromHistory('both-user')
self.assertEqual(
both_user.parameters['zuul']['artifacts'],
[{
'project': 'org/project1',
'change': '1',
'patchset': '1',
'job': 'image-builder',
'url': 'http://example.com/image',
'name': 'image',
'metadata': {
'type': 'container_image',
}
}, {
'project': 'org/project1',
'change': '1',
'patchset': '1',
'job': 'library-builder',
'url': 'http://example.com/library',
'name': 'library',
'metadata': {
'type': 'library_object',
}
}, {
'project': 'org/project1',
'change': '2',
'patchset': '1',
'job': 'image-builder',
'url': 'http://example.com/image2',
'name': 'image2',
'metadata': {
'type': 'container_image',
}
}, {
'project': 'org/project1',
'change': '2',
'patchset': '1',
'job': 'library-builder',
'url': 'http://example.com/library2',
'name': 'library2',
'metadata': {
'type': 'library_object',
}
}])
@simple_layout('layouts/provides-requires.yaml')
def test_provides_requires_check_old_failure(self):

View File

@ -52,7 +52,7 @@ class DatabaseSession(object):
def listFilter(self, query, column, value):
if value is None:
return query
if isinstance(value, list):
if isinstance(value, list) or isinstance(value, tuple):
return query.filter(column.in_(value))
return query.filter(column == value)