def bid_get(bid_id, context): bid_ref = get_session().query( models.Bid).filter_by(bid_id=bid_id).one_or_none() if bid_ref: return bid_ref else: raise exception.ResourceNotFound(resource_type="Bid", resource_uuid=bid_id)
def offer_get(offer_id, context): offer_ref = get_session().query( models.Offer).filter_by(offer_id=offer_id).one_or_none() if offer_ref: return offer_ref else: raise exception.ResourceNotFound(resource_type="Offer", resource_uuid=offer_id)
def contract_get(contract_id, context): contract_ref = get_session().query( models.Contract).filter_by(contract_id=contract_id).one_or_none() if contract_ref: return contract_ref else: raise exception.ResourceNotFound(resource_type="Contract", resource_uuid=contract_id)
def contract_destroy(contract_id, context): if context.is_admin: contract_ref = contract_get(contract_id, context) if contract_ref: get_session().query( models.Contract).filter_by(contract_id=contract_id).delete() else: raise exception.ResourceNotFound(resource_type="Contract", resource_uuid=contract_id) else: raise exception.ResourceNoPermission(resource_type="Contract", resource_uuid=contract_id)
def offer_contract_relationship_get(context, offer_contract_relationship_id=None): if offer_contract_relationship_id is None: return None ref = get_session().query(models.OfferContractRelationship).filter( models.OfferContractRelationship.offer_contract_relationship_id == offer_contract_relationship_id).one_or_none() if ref: return ref else: raise exception.ResourceNotFound( resource_type="Offer_Contract_Relationship", resource_uuid=offer_contract_relationship_id)
def offer_update(offer_id, values, context): offer_ref = get_session().query( models.Offer).filter_by(offer_id=offer_id).one_or_none() if offer_ref: if offer_ref.project_id != context.project_id and not context.is_admin: raise exception.ResourceNoPermission(resource_type="Offer", resource_uuid=offer_id) values.pop('offer_id', None) offer_ref.update(values) offer_ref.save(get_session()) return offer_ref else: raise exception.ResourceNotFound(resource_type="Offer", resource_uuid=offer_id)
def contract_update(contract_id, values, context): if context.is_admin: contract_ref = get_session().query( models.Contract).filter_by(contract_id=contract_id).one_or_none() if contract_ref: values.pop('contract_id', None) contract_ref.update(values) contract_ref.save(get_session()) return contract_ref else: raise exception.ResourceNotFound(resource_type="Contract", resource_uuid=contract_id) else: raise exception.ResourceNoPermission(resource_type="Contract", resource_uuid=contract_id)
def offer_destroy(offer_id, context): offer_ref = get_session().query( models.Offer).filter_by(offer_id=offer_id).one_or_none() if offer_ref: if offer_ref.project_id != context.project_id and not context.is_admin: raise exception.ResourceNoPermission(resource_type="Offer", resource_uuid=offer_id) if context.is_admin: get_session().query( models.Offer).filter_by(offer_id=offer_id).delete() else: get_session().query(models.Offer).filter_by( offer_id=offer_id, project_id=context.project_id).delete() else: raise exception.ResourceNotFound(resource_type="Offer", resource_uuid=offer_id)
def bid_update(bid_id, values, context): if context.is_admin: bid_ref = get_session().query( models.Bid).filter_by(bid_id=bid_id).one_or_none() else: bid_ref = get_session().query( models.Bid).filter_by(bid_id=bid_id).one_or_none() if bid_ref: if bid_ref.project_id != context.project_id and not context.is_admin: raise exception.ResourceNoPermission(resource_type="Bid", resource_uuid=bid_id) values.pop('bid_id', None) bid_ref.update(values) bid_ref.save(get_session()) return bid_ref else: raise exception.ResourceNotFound(resource_type="Bid", resource_uuid=bid_id)
def bid_destroy(bid_id, context): if context.is_admin: bid_ref = get_session().query( models.Bid).filter_by(bid_id=bid_id).one_or_none() else: bid_ref = get_session().query( models.Bid).filter_by(bid_id=bid_id).one_or_none() if bid_ref: if bid_ref.project_id != context.project_id and not context.is_admin: raise exception.ResourceNoPermission(resource_type="Bid", resource_uuid=bid_id) if context.is_admin: get_session().query(models.Bid).filter_by(bid_id=bid_id).delete() else: get_session().query(models.Bid).filter_by( bid_id=bid_id, project_id=context.project_id).delete() else: raise exception.ResourceNotFound(resource_type="Bid", resource_uuid=bid_id)
def test_update_contract_missing(mock_get, mock_save, client): mock_get.side_effect = e.ResourceNotFound() res = client.put('/contract/does-not-exist', data=json.dumps(dict(status=statuses.FULFILLED))) assert res.status_code == 404 assert mock_save.call_count == 0
def test_delete_contract_missing(mock_get, client): mock_get.side_effect = e.ResourceNotFound() response = client.delete('/contract/does-not-exist') assert response.status_code == 404
def test_get_offer_missing(mock_get, client): mock_get.side_effect = e.ResourceNotFound() response = client.get('/offer/does-not-exist') assert response.status_code == 404
def test_update_offer_missing(mock_get, mock_save, client): mock_get.side_effect = e.ResourceNotFound() res = client.put('/offer/does-not-exist', data=json.dumps(dict(status='testing'))) assert res.status_code == 404 assert mock_save.call_count == 0
def test_get_offer_contract_relationship_with_id_missing(mock_get, client): mock_get.side_effect = e.ResourceNotFound() response = client.get('/offer_contract_relationship/does-not-exist') assert response.status_code == 404