Skip to content

Commit

Permalink
Merge branch 'a211430089103757_award_complaints' into dev
Browse files Browse the repository at this point in the history
  • Loading branch information
vmaksymiv committed Nov 14, 2016
2 parents a997917 + b94d32c commit 6d29143
Showing 1 changed file with 105 additions and 1 deletion.
106 changes: 105 additions & 1 deletion openprocurement/tender/limited/tests/award.py
Expand Up @@ -462,6 +462,26 @@ def test_get_tender_award(self):
])


class TenderAwardComplaintResourceTest(BaseTenderContentWebTest):
initial_status = 'active'
initial_data = test_tender_data
initial_bids = None

def test_create_tender_award_complaints(self):
request_path = '/tenders/{}/awards?acc_token={}'.format(self.tender_id, self.tender_token)
response = self.app.post_json(request_path, {'data': {'suppliers': [test_organization], 'qualified': True,
'status': 'pending'}})
self.assertEqual(response.status, '201 Created')
self.assertEqual(response.content_type, 'application/json')
award = response.json['data']
self.award_id = award['id']

response = self.app.post_json('/tenders/{}/awards/{}/complaints'.format(self.tender_id, self.award_id),
{'data': {'title': 'complaint title', 'description': 'complaint description',
'author': test_organization, 'status': 'pending'}}, status=404)
self.assertEqual(response.status, '404 Not Found')


class TenderNegotiationAwardResourceTest(TenderAwardResourceTest):
initial_data = test_tender_negotiation_data

Expand Down Expand Up @@ -1222,7 +1242,24 @@ def test_create_tender_award_complaint_invalid(self):
u'name': u'author'}
])

def test_create_tender_award_complaint(self):
def test_create_tender_award_complaints(self):

response = self.app.patch_json('/tenders/{}/awards/{}?acc_token={}'.format(self.tender_id, self.award_id,
self.tender_token),
{"data": {"status": "unsuccessful"}})
self.assertEqual(response.status, '200 OK')
self.assertEqual(response.json['data']["status"], 'unsuccessful')

response = self.app.post_json('/tenders/{}/awards/{}/complaints'.format(self.tender_id, self.award_id),
{'data': {'title': 'complaint title', 'description': 'complaint description',
'author': test_organization, 'status': 'pending'}}, status=403)
self.assertEqual(response.status, '403 Forbidden')
self.assertEqual(response.json['errors'][0]["description"], "Can add complaint only in complaintPeriod")


self.create_award()


response = self.app.post_json('/tenders/{}/awards/{}/complaints'.format(self.tender_id, self.award_id),
{'data': {'title': 'complaint title', 'description': 'complaint description',
'author': test_organization, 'status': 'pending'}})
Expand Down Expand Up @@ -1549,13 +1586,80 @@ def test_cancelled_award_with_complaint(self):

class TenderLotNegotiationAwardComplaintResourceTest(TenderNegotiationAwardComplaintResourceTest):

def test_create_tender_award_complaints(self):
response = self.app.patch_json('/tenders/{}/awards/{}?acc_token={}'.format(self.tender_id, self.award_id,
self.tender_token),
{"data": {"status": "unsuccessful"}})
self.assertEqual(response.status, '200 OK')
self.assertEqual(response.json['data']["status"], 'unsuccessful')

response = self.app.post_json('/tenders/{}/awards/{}/complaints'.format(self.tender_id, self.award_id),
{'data': {'title': 'complaint title', 'description': 'complaint description',
'author': test_organization, 'status': 'pending'}}, status=403)
self.assertEqual(response.status, '403 Forbidden')
self.assertEqual(response.json['errors'][0]["description"], "Can add complaint only in complaintPeriod")

request_path = '/tenders/{}/awards?acc_token={}'.format(self.tender_id, self.tender_token)
response = self.app.post_json(request_path, {'data': {'suppliers': [test_organization], 'qualified': True,
'status': 'pending', 'lotID': self.lot_id}})
self.assertEqual(response.status, '201 Created')
self.assertEqual(response.content_type, 'application/json')
award = response.json['data']
self.award_id = award['id']

response = self.app.post_json('/tenders/{}/awards/{}/complaints'.format(self.tender_id, self.award_id),
{'data': {'title': 'complaint title', 'description': 'complaint description',
'author': test_organization, 'status': 'pending'}})
self.assertEqual(response.status, '201 Created')
self.assertEqual(response.content_type, 'application/json')
complaint = response.json['data']
self.assertEqual(complaint['author']['name'], test_organization['name'])
self.assertIn('id', complaint)
self.assertIn(complaint['id'], response.headers['Location'])


response = self.app.patch_json('/tenders/{}/awards/{}?acc_token={}'.format(self.tender_id, self.award_id,
self.tender_token), {"data": {"status": "active"}})
self.assertEqual(response.status, '200 OK')
self.assertEqual(response.json['data']["status"], 'active')

response = self.app.patch_json('/tenders/{}/awards/{}?acc_token={}'.format(self.tender_id, self.award_id,
self.tender_token), {"data": {"status": "cancelled"}})
self.assertEqual(response.status, '200 OK')
self.assertEqual(response.json['data']["status"], 'cancelled')

response = self.app.post_json('/tenders/{}/awards/{}/complaints'.format(self.tender_id, self.award_id),
{'data': {'title': 'complaint title', 'description': 'complaint description',
'author': test_organization, 'status': 'pending'}}, status=403)
self.assertEqual(response.status, '403 Forbidden')
self.assertEqual(response.json['errors'][0]["description"],
"Can add complaint only in complaintPeriod")

response = self.app.get('/tenders/{}'.format(self.tender_id))
self.assertEqual(response.status, '200 OK')
self.assertEqual(response.content_type, 'application/json')
self.assertEqual(response.json['data']["status"], 'active')

self.set_status('unsuccessful')

response = self.app.post_json('/tenders/{}/awards/{}/complaints'.format(self.tender_id, self.award_id),
{'data': {'title': 'complaint title',
'description': 'complaint description',
'author': test_organization}},
status=403)
self.assertEqual(response.status, '403 Forbidden')
self.assertEqual(response.content_type, 'application/json')
self.assertEqual(response.json['errors'][0]["description"],
"Can't add complaint in current (unsuccessful) tender status")

def create_award(self):
# create lot
response = self.app.post_json('/tenders/{}/lots?acc_token={}'.format(self.tender_id, self.tender_token),
{'data': test_lots[0]})
self.assertEqual(response.status, '201 Created')
self.assertEqual(response.content_type, 'application/json')
self.lot = response.json['data']
self.lot_id = self.lot['id']

# set items to lot
response = self.app.patch_json('/tenders/{}?acc_token={}'.format(self.tender_id, self.tender_token),
Expand Down

0 comments on commit 6d29143

Please sign in to comment.