bodhi/model.py | 13 +++++++------ bodhi/tests/test_controllers.py | 24 ++++++++++++++++++++++++ bodhi/tests/test_model.py | 2 +- 3 files changed, 32 insertions(+), 7 deletions(-)
New commits: commit ab94952884f83d1f3ea8733eb079749ad8c88e47 Author: Luke Macken lmacken@redhat.com Date: Wed Mar 3 13:09:42 2010 -0500
Add a unit test to ensure PackageUpdate.request_complete() works on critpath
diff --git a/bodhi/tests/test_controllers.py b/bodhi/tests/test_controllers.py index d4ba4a8..7bae57a 100644 --- a/bodhi/tests/test_controllers.py +++ b/bodhi/tests/test_controllers.py @@ -1683,6 +1683,30 @@ class TestControllers(testutil.DBTest): assert update.comments[2].author == 'bodhi', update.comments assert update.comments[2].text == 'Critical path update approved'
+ def test_critpath_request_complete(self): + """ + Ensure devs can *not* push critpath updates directly to stable + for pending releases + """ + session = login() + create_release(locked=True) + params = { + 'builds' : 'kernel-2.6.31-1.fc7', + 'release' : 'Fedora 7', + 'type_' : 'bugfix', + 'bugs' : '', + 'notes' : 'foobar', + 'stable_karma' : 1, + 'request': 'stable', + 'unstable_karma' : -1, + } + self.save_update(params, session) + update = PackageUpdate.byTitle(params['builds']) + assert update.critpath + + update.request_complete() + assert not update.request + def test_created_since(self): session = login() create_release() diff --git a/bodhi/tests/test_model.py b/bodhi/tests/test_model.py index 56f5775..6e60bcb 100644 --- a/bodhi/tests/test_model.py +++ b/bodhi/tests/test_model.py @@ -440,7 +440,7 @@ class TestPackageUpdate(testutil.DBTest): up.status = 'testing' up.status_comment() assert len(up.comments) == 1 - assert up.comments[0].author == 'bodhi', up.comments[0] + assert 'bodhi' in up.comments[0].author, up.comments[0] assert up.comments[0].text == 'This update has been pushed to testing' up.status = 'stable' up.status_comment()
commit 29573c67403483e35dec2cf12a91acf7538c2765 Author: Luke Macken lmacken@redhat.com Date: Wed Mar 3 13:09:20 2010 -0500
Only automatically mark as stable if it's not stable already...
diff --git a/bodhi/model.py b/bodhi/model.py index 014a1f5..7b36eaa 100644 --- a/bodhi/model.py +++ b/bodhi/model.py @@ -738,12 +738,13 @@ class PackageUpdate(SQLObject): not self.critpath_approved): pass else: - log.info("Automatically marking %s as stable" % self.title) - self.request = 'stable' - self.pushed = False - #self.date_pushed = None - mail.send(self.submitter, 'stablekarma', self) - mail.send_admin('stablekarma', self) + if self.status != 'stable': + log.info("Automatically marking %s as stable" % self.title) + self.request = 'stable' + self.pushed = False + #self.date_pushed = None + mail.send(self.submitter, 'stablekarma', self) + mail.send_admin('stablekarma', self)
if self.status == 'testing' and self.unstable_karma != 0 and \ self.karma == self.unstable_karma: