Merge PR#209 add disttag handling to get_next_release
Merges #209 https://pagure.io/koji/pull-request/209
This commit is contained in:
commit
400e70a344
2 changed files with 61 additions and 0 deletions
|
|
@ -3499,6 +3499,11 @@ def get_next_release(build_info):
|
|||
release = '1'
|
||||
elif release.isdigit():
|
||||
release = str(int(release) + 1)
|
||||
elif len(release.split('.')) == 2 and release.split('.')[0].isdigit():
|
||||
# Handle the N.%{dist} case
|
||||
r_split = release.split('.')
|
||||
r_split[0] = str(int(r_split[0]) + 1)
|
||||
release = '.'.join(r_split)
|
||||
else:
|
||||
raise koji.BuildError, 'Unable to increment release value: %s' % release
|
||||
return release
|
||||
|
|
|
|||
56
tests/test_hub/test_get_next_release.py
Normal file
56
tests/test_hub/test_get_next_release.py
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
import mock
|
||||
import unittest
|
||||
|
||||
import koji
|
||||
import kojihub
|
||||
|
||||
|
||||
class TestGetNextRelease(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.QueryProcessor = mock.patch('kojihub.QueryProcessor').start()
|
||||
self._dml = mock.patch('kojihub._dml').start()
|
||||
self.query = self.QueryProcessor.return_value
|
||||
self.binfo = {'name': 'name', 'version': 'version'}
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_get_next_release_new(self):
|
||||
# no previous build
|
||||
self.query.executeOne.return_value = None
|
||||
result = kojihub.get_next_release(self.binfo)
|
||||
self.assertEqual(result, '1')
|
||||
|
||||
def test_get_next_release_int(self):
|
||||
for n in [1, 2, 3, 5, 8, 13, 21, 34, 55]:
|
||||
self.query.executeOne.return_value = {'release': str(n)}
|
||||
result = kojihub.get_next_release(self.binfo)
|
||||
self.assertEqual(result, str(n+1))
|
||||
|
||||
def test_get_next_release_complex(self):
|
||||
data = [
|
||||
# [release, bumped_release],
|
||||
['1.el6', '2.el6'],
|
||||
['1.fc23', '2.fc23'],
|
||||
['45.fc23', '46.fc23'],
|
||||
]
|
||||
for a, b in data:
|
||||
self.query.executeOne.return_value = {'release': a}
|
||||
result = kojihub.get_next_release(self.binfo)
|
||||
self.assertEqual(result, b)
|
||||
|
||||
def test_get_next_release_bad(self):
|
||||
data = [
|
||||
# bad_release_value
|
||||
"foo",
|
||||
"foo.bar",
|
||||
"a.b.c.d",
|
||||
"a..b..c",
|
||||
"1.2.fc23",
|
||||
]
|
||||
for val in data:
|
||||
self.query.executeOne.return_value = {'release': val}
|
||||
with self.assertRaises(koji.BuildError):
|
||||
kojihub.get_next_release(self.binfo)
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue