def switch_suspended_active_to_unsuccessful(self): response = self.app.post('/auctions/{}/awards/{}/documents?acc_token={}'.format( self.auction_id, self.award_id, self.auction_token), upload_files=[('file', 'auction_protocol.pdf', 'content')]) self.assertEqual(response.status, '201 Created') self.assertEqual(response.content_type, 'application/json') doc_id = response.json["data"]['id'] response = self.app.patch_json( '/auctions/{}/awards/{}/documents/{}?acc_token={}'.format(self.auction_id, self.award_id, doc_id, self.auction_token), {"data": { "description": "auction protocol", "documentType": 'auctionProtocol' }}) self.assertEqual(response.status, '200 OK') self.assertEqual(response.content_type, 'application/json') self.assertEqual(response.json["data"]["documentType"], 'auctionProtocol') response = self.app.patch_json('/auctions/{}/awards/{}?acc_token={}'.format( self.auction_id, self.award_id, self.auction_token ), {"data": {"status": "active"}}) self.assertEqual(response.status, '200 OK') self.assertEqual(response.content_type, 'application/json') self.assertEqual(response.json['data']["status"], "active") auction = self.db.get(self.auction_id) related_contract = get_related_contract_of_award(auction['awards'][0]['id'], auction) related_contract['signingPeriod']['endDate'] = related_contract['signingPeriod']['startDate'] related_contract['signingPeriod']['endDate'] = related_contract['signingPeriod']['startDate'] self.db.save(auction) self.app.authorization = ('Basic', ('administrator', '')) response = self.app.patch_json('/auctions/{}'.format(self.auction_id), {'data': {'suspended': True}}) self.app.authorization = ('Basic', ('chronograph', '')) response = self.app.patch_json('/auctions/{}'.format(self.auction_id), {'data': {'id': self.auction_id}}) self.assertEqual(response.status, '200 OK') auction = response.json['data'] self.assertEqual(response.status, '200 OK') self.assertEqual(auction['awards'][0]['status'], 'active') self.assertEqual(auction['contracts'][0]['status'], 'pending') self.assertEqual(auction['awards'][1]['status'], 'pending.waiting') self.assertEqual(auction['status'], 'active.awarded') self.assertIn('endDate', auction['awardPeriod']) self.app.authorization = ('Basic', ('administrator', '')) response = self.app.patch_json('/auctions/{}'.format(self.auction_id), {'data': {'suspended': False}}) self.app.authorization = ('Basic', ('chronograph', '')) response = self.app.patch_json('/auctions/{}'.format(self.auction_id), {'data': {'id': self.auction_id}}) auction = response.json['data'] self.assertEqual(response.status, '200 OK') self.assertEqual(auction['awards'][0]['status'], 'unsuccessful') self.assertEqual(auction['contracts'][0]['status'], 'cancelled') self.assertEqual(auction['awards'][1]['status'], 'pending') self.assertEqual(auction['status'], 'active.qualification') self.assertNotIn('endDate', auction['awardPeriod'])
def check_award_status(request, award, now): """Checking protocol and contract loading by the owner in time.""" auction = request.validated['auction'] protocol_overdue = protocol_overdue_predicate(award, 'pending', now) # seek for contract overdue related_contract = get_related_contract_of_award(award['id'], auction) contract_overdue = contract_overdue_predicate( related_contract, 'pending', now) if related_contract else None if protocol_overdue or contract_overdue: set_unsuccessful_award(request, auction, award, now)
def switch_active_to_unsuccessful_2(self): bid_token = self.initial_bids_tokens[self.award['bid_id']] response = self.app.post( '/auctions/{}/awards/{}/documents?acc_token={}'.format( self.auction_id, self.award_id, self.auction_token), upload_files=[('file', 'auction_protocol.pdf', 'content')]) self.assertEqual(response.status, '201 Created') self.assertEqual(response.content_type, 'application/json') doc_id = response.json["data"]['id'] key = response.json["data"]["url"].split('?')[-1] response = self.app.patch_json( '/auctions/{}/awards/{}/documents/{}?acc_token={}'.format( self.auction_id, self.award_id, doc_id, self.auction_token), { "data": { "description": "auction protocol", "documentType": 'auctionProtocol' } }) self.assertEqual(response.status, '200 OK') self.assertEqual(response.content_type, 'application/json') self.assertEqual(response.json["data"]["documentType"], 'auctionProtocol') response = self.app.patch_json( '/auctions/{}/awards/{}'.format(self.auction_id, self.award_id), {"data": { "status": "active" }}) self.assertEqual(response.status, '200 OK') self.assertEqual(response.content_type, 'application/json') self.assertEqual(response.json['data']["status"], "active") auction = self.db.get(self.auction_id) related_contract = get_related_contract_of_award( auction['awards'][0]['id'], auction) related_contract['signingPeriod']['endDate'] = related_contract[ 'signingPeriod']['startDate'] self.db.save(auction) self.app.authorization = ('Basic', ('chronograph', '')) response = self.app.patch_json('/auctions/{}'.format(self.auction_id), {'data': { 'id': self.auction_id }}) auction = response.json['data'] self.assertEqual(response.status, '200 OK') self.assertEqual(auction['awards'][0]['status'], 'unsuccessful') self.assertEqual(auction['contracts'][0]['status'], 'cancelled') if 'Insider' not in auction['procurementMethodType']: self.assertEqual(auction['awards'][1]['status'], 'unsuccessful') self.assertEqual(auction['status'], 'unsuccessful') self.assertIn('endDate', auction['awardPeriod'])
def set_award_unsuccessful(self, award): response = self.app.get( '/auctions/{}/contracts'.format(self.auction_id) ) contract = get_related_contract_of_award( award['id'], {'contracts': response.json['data']} ) response = self.app.post( '/auctions/{}/contracts/{}/documents?acc_token={}'.format( self.auction_id, contract['id'], self.auction_token ), upload_files=[('file', 'rejection_protocol.pdf', 'content')]) self.assertEqual(response.status, '201 Created') self.assertEqual(response.content_type, 'application/json') doc_id = response.json['data']['id'] response = self.app.patch_json( '/auctions/{}/contracts/{}/documents/{}?acc_token={}'.format( self.auction_id, contract['id'], doc_id, self.auction_token ), {"data": { "description": "rejection protocol", "documentType": 'rejectionProtocol' }}) self.assertEqual(response.status, '200 OK') self.assertEqual(response.content_type, 'application/json') response = self.app.patch_json( '/auctions/{}/contracts/{}?acc_token={}'.format( self.auction_id, contract['id'], self.auction_token ), {'data': {'status': 'cancelled'}}) self.assertEqual(response.status, '200 OK') self.assertEqual(response.content_type, 'application/json') self.assertEqual(response.json['data']['status'], 'cancelled') response = self.app.get('/auctions/{}/awards/{}'.format( self.auction_id, award['id'] )) self.assertEqual(response.status, '200 OK') self.assertEqual(response.content_type, 'application/json') self.assertEqual(response.json['data']['status'], 'unsuccessful')