def test_update_collection_status(self): """ Test the update_collection_status function. """ create_collection(self.session) collection = model.Collection.by_name(self.session, 'F-18') self.assertEqual(collection.status, 'Active') self.assertRaises( pkgdblib.PkgdbException, pkgdblib.update_collection_status, self.session, 'F-18', 'EOL', user=FakeFasUser(), ) pkgdblib.update_collection_status(self.session, 'F-18', 'EOL', user=FakeFasUserAdmin()) self.session.commit() msg = pkgdblib.update_collection_status(self.session, 'F-18', 'EOL', user=FakeFasUserAdmin()) self.assertEqual(msg, 'Collection "F-18" already had this status') collection = model.Collection.by_name(self.session, 'F-18') self.assertEqual(collection.status, 'EOL')
def test_update_collection_status(self): """ Test the update_collection_status function. """ create_collection(self.session) collection = model.Collection.by_name(self.session, 'F-18') self.assertEqual(collection.status, 'Active') self.assertRaises(pkgdblib.PkgdbException, pkgdblib.update_collection_status, self.session, 'F-18', 'EOL', user=FakeFasUser(), ) pkgdblib.update_collection_status( self.session, 'F-18', 'EOL', user=FakeFasUserAdmin()) self.session.commit() msg = pkgdblib.update_collection_status( self.session, 'F-18', 'EOL', user=FakeFasUserAdmin()) self.assertEqual(msg, 'Collection "F-18" already had this status') collection = model.Collection.by_name(self.session, 'F-18') self.assertEqual(collection.status, 'EOL')
def api_collection_status(collection): ''' Update the status of collection. :arg collection_branchname: String of the collection branch name to change. :arg collection_status: String of the status to change the collection to ''' httpcode = 200 output = {} clt_status = pkgdblib.get_status(SESSION, 'clt_status')['clt_status'] form = forms.CollectionStatusForm( csrf_enabled=False, clt_status=clt_status, ) if form.validate_on_submit(): clt_branchname = form.collection_branchname.data clt_status = form.collection_status.data if collection == clt_branchname: try: message = pkgdblib.update_collection_status( SESSION, clt_branchname, clt_status, user=flask.g.fas_user ) SESSION.commit() output['output'] = 'ok' output['messages'] = [message] except pkgdblib.PkgdbException, err: SESSION.rollback() output['output'] = 'notok' output['error'] = err.message httpcode = 500 else: output['output'] = 'notok' output['error'] = "You're trying to update the " \ "wrong collection" httpcode = 500
def api_collection_status(collection): ''' Update collection status ------------------------ Update the status of collection. :: /api/collection/<collection branchname>/status/ Accept POST query only. :arg collection_branchname: String of the collection branch name to change. :arg collection_status: String of the status to change the collection to Sample response: :: { "output": "ok", "messages": ["Collection updated to \"EOL\""] } { "output": "notok", "error": ["You are not allowed to edit collections"] } ''' httpcode = 200 output = {} clt_status = pkgdblib.get_status(SESSION, 'clt_status')['clt_status'] form = forms.CollectionStatusForm( csrf_enabled=False, clt_status=clt_status, ) if form.validate_on_submit(): clt_branchname = form.collection_branchname.data clt_status = form.collection_status.data if collection == clt_branchname: try: message = pkgdblib.update_collection_status( SESSION, clt_branchname, clt_status, user=flask.g.fas_user ) SESSION.commit() output['output'] = 'ok' output['messages'] = [message] except pkgdblib.PkgdbException, err: SESSION.rollback() output['output'] = 'notok' output['error'] = err.message httpcode = 500 else: output['output'] = 'notok' output['error'] = "You're trying to update the " \ "wrong collection" httpcode = 500