def test_create_override_for_newer_build(self): old_build = RpmBuild.get('bodhi-2.0-1.fc17') build = RpmBuild(nvr='bodhi-2.0-2.fc17', package=old_build.package, release=old_build.release) self.db.add(build) self.db.flush() expiration_date = datetime.utcnow() + timedelta(days=1) data = {'nvr': build.nvr, 'notes': 'blah blah blah', 'expiration_date': expiration_date, 'csrf_token': self.get_csrf_token()} expected_messages = ( override_schemas.BuildrootOverrideUntagV1, override_schemas.BuildrootOverrideTagV1) with fml_testing.mock_sends(*expected_messages): res = self.app.post('/overrides/', data) o = res.json_body self.assertEqual(o['build_id'], build.id) self.assertEqual(o['notes'], 'blah blah blah') self.assertEqual(o['expiration_date'], expiration_date.strftime("%Y-%m-%d %H:%M:%S")) self.assertEqual(o['expired_date'], None) old_build = RpmBuild.get('bodhi-2.0-1.fc17') self.assertNotEqual(old_build.override['expired_date'], None)
def test_create_override_for_newer_build(self, publish): old_build = RpmBuild.get('bodhi-2.0-1.fc17') build = RpmBuild(nvr='bodhi-2.0-2.fc17', package=old_build.package, release=old_build.release) self.db.add(build) self.db.flush() expiration_date = datetime.utcnow() + timedelta(days=1) data = {'nvr': build.nvr, 'notes': 'blah blah blah', 'expiration_date': expiration_date, 'csrf_token': self.get_csrf_token()} res = self.app.post('/overrides/', data) publish.assert_any_call(topic='buildroot_override.tag', msg=mock.ANY) publish.assert_any_call( topic='buildroot_override.untag', msg=mock.ANY) o = res.json_body self.assertEqual(o['build_id'], build.id) self.assertEqual(o['notes'], 'blah blah blah') self.assertEqual(o['expiration_date'], expiration_date.strftime("%Y-%m-%d %H:%M:%S")) self.assertEqual(o['expired_date'], None) old_build = RpmBuild.get('bodhi-2.0-1.fc17') self.assertNotEqual(old_build.override['expired_date'], None)
def test_unexpire_override(self): # First expire a buildroot override old_nvr = 'bodhi-2.0-1.fc17' override = RpmBuild.get(old_nvr).override with fml_testing.mock_sends(override_schemas.BuildrootOverrideUntagV1): override.expire() self.db.commit() self.db.add(override) self.db.flush() # And now push its expiration_date into the future res = self.app.get('/overrides/%s' % old_nvr, headers={'Accept': 'application/json'}) o = res.json_body['override'] expiration_date = datetime.now() + timedelta(days=1) expiration_date = expiration_date.strftime("%Y-%m-%d %H:%M:%S") o.update({'nvr': o['build']['nvr'], 'edited': old_nvr, 'expiration_date': expiration_date, 'csrf_token': self.get_csrf_token()}) with fml_testing.mock_sends(override_schemas.BuildrootOverrideTagV1): res = self.app.post('/overrides/', o) override = res.json_body self.assertEqual(override['build'], o['build']) self.assertEqual(override['notes'], o['notes']) self.assertEqual(override['expiration_date'], o['expiration_date']) self.assertEqual(override['expired_date'], None)
def test_unexpire_override(self, publish): # First expire a buildroot override old_nvr = 'bodhi-2.0-1.fc17' override = RpmBuild.get(old_nvr).override override.expire() self.db.add(override) self.db.flush() publish.assert_called_once_with( topic='buildroot_override.untag', msg=mock.ANY) publish.reset_mock() # And now push its expiration_date into the future res = self.app.get('/overrides/%s' % old_nvr, headers={'Accept': 'application/json'}) o = res.json_body['override'] expiration_date = datetime.now() + timedelta(days=1) expiration_date = expiration_date.strftime("%Y-%m-%d %H:%M:%S") o.update({'nvr': o['build']['nvr'], 'edited': old_nvr, 'expiration_date': expiration_date, 'csrf_token': self.get_csrf_token()}) res = self.app.post('/overrides/', o) override = res.json_body self.assertEqual(override['build'], o['build']) self.assertEqual(override['notes'], o['notes']) self.assertEqual(override['expiration_date'], o['expiration_date']) self.assertEqual(override['expired_date'], None) publish.assert_called_once_with( topic='buildroot_override.tag', msg=mock.ANY)