bodhi/controllers.py | 8 ++++++++ bodhi/tests/test_controllers.py | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+)
New commits: commit ed526428192fe6af23352bd809dffc0d6e2349d8 Author: Luke Macken lmacken@redhat.com Date: Wed Jan 27 10:56:47 2010 -0500
Disallow the ability to edit an update, and add a build from a different release (#251)
diff --git a/bodhi/controllers.py b/bodhi/controllers.py index 9f1915d..5daf4c5 100644 --- a/bodhi/controllers.py +++ b/bodhi/controllers.py @@ -661,6 +661,14 @@ class Root(controllers.RootController): break if rel: log.debug("Adding %s for %s" % (rel.name, build)) + if edited: + if edited.release != rel: + valid = False + flash_log("Cannot add a %s build to a %s update. " + "Please create a new update for %s" % ( + rel.name, edited.release.name, build)) + raise InvalidUpdateException(params) + if not releases.has_key(rel): releases[rel] = [] if build not in releases[rel]: diff --git a/bodhi/tests/test_controllers.py b/bodhi/tests/test_controllers.py index b998952..fbee31f 100644 --- a/bodhi/tests/test_controllers.py +++ b/bodhi/tests/test_controllers.py @@ -359,6 +359,38 @@ class TestControllers(testutil.DBTest): assert f7up.builds[0].nvr == f7build assert f7up.builds[0].package.name == 'TurboGears'
+ def test_add_different_release_to_update(self): + """ + Try adding a build for a different release to an update (#251) + """ + session = login() + f7 = create_release() + f8 = create_release('8', dist='dist-f') + params = { + 'builds' : 'TurboGears-1.0.2.2-2.fc7', + 'type_' : 'bugfix', + 'bugs' : '', + 'cves' : '', + 'notes' : '' + } + self.save_update(params, session) + + # Add another build, for a different release + params = { + 'builds' : 'TurboGears-1.0.2.2-2.fc7 python-sqlobject-0.8.2-1.fc8', + 'release' : 'Fedora 7', + 'type_' : 'bugfix', + 'bugs' : '1', + 'cves' : '', + 'notes' : '', + 'edited' : 'TurboGears-1.0.2.2-2.fc7' + } + + testutil.capture_log(['bodhi.controllers', 'bodhi.util', 'bodhi.model']) + self.save_update(params, session) + logs = testutil.get_log() + assert 'Cannot add a F8 build to a F7 update. Please create a new update for python-sqlobject-0.8.2-1.fc8' in logs + def test_edit(self): session = login() create_release()