Skip to content

Commit

Permalink
updated stand-still periods in tests
Browse files Browse the repository at this point in the history
  • Loading branch information
vmaksymiv committed Feb 26, 2016
1 parent 1b417d4 commit 49a42c0
Show file tree
Hide file tree
Showing 3 changed files with 133 additions and 26 deletions.
3 changes: 2 additions & 1 deletion openprocurement/tender/limited/tests/award.py
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,8 @@ def test_patch_tender_award(self):
# sign contract to complete tender
tender = self.db.get(self.tender_id)
for i in tender.get('awards', []):
i['complaintPeriod']['endDate'] = i['complaintPeriod']['startDate']
if i.get('complaintPeriod', {}): # works for negotiation tender
i['complaintPeriod']['endDate'] = i['complaintPeriod']['startDate']
self.db.save(tender)
response = self.app.get('/tenders/{}/contracts'.format(self.tender_id))
self.assertEqual(response.status, '200 OK')
Expand Down
141 changes: 121 additions & 20 deletions openprocurement/tender/limited/tests/contract.py
Original file line number Diff line number Diff line change
@@ -1,19 +1,20 @@
# -*- coding: utf-8 -*-
import unittest

from openprocurement.tender.limited.tests.base import (BaseTenderContentWebTest,
test_tender_data)
from openprocurement.tender.limited.tests.base import (
BaseTenderContentWebTest, test_tender_data, test_tender_negotiation_data)


class TenderContractResourceTest(BaseTenderContentWebTest):
initial_status = 'active'
initial_data = test_tender_data
initial_bids = None #test_bids

def setUp(self):
super(TenderContractResourceTest, self).setUp()
# Create award
response = self.app.post_json('/tenders/{}/awards?acc_token={}'.format(
self.tender_id, self.tender_token), {'data': {'suppliers': [test_tender_data["procuringEntity"]], 'status': 'pending'}})
self.tender_id, self.tender_token), {'data': {'suppliers': [self.initial_data["procuringEntity"]], 'status': 'pending'}})
award = response.json['data']
self.award_id = award['id']
response = self.app.patch_json('/tenders/{}/awards/{}?acc_token={}'.format(self.tender_id, self.award_id, self.tender_token), {"data": {"status": "active"}})
Expand Down Expand Up @@ -111,7 +112,8 @@ def test_create_tender_contract_with_token(self):

tender = self.db.get(self.tender_id)
for i in tender.get('awards', []):
i['complaintPeriod']['endDate'] = i['complaintPeriod']['startDate']
if i.get('complaintPeriod', {}): # works for negotiation tender
i['complaintPeriod']['endDate'] = i['complaintPeriod']['startDate']
self.db.save(tender)

response = self.app.patch_json('/tenders/{}/contracts/{}?acc_token={}'.format(self.tender_id, contract['id'], self.tender_token),
Expand Down Expand Up @@ -140,7 +142,8 @@ def test_create_tender_contract(self):
# time travel
tender = self.db.get(self.tender_id)
for i in tender.get('awards', []):
i['complaintPeriod']['endDate'] = i['complaintPeriod']['startDate']
if i.get('complaintPeriod', {}): # reporting procedure does not have complaintPeriod
i['complaintPeriod']['endDate'] = i['complaintPeriod']['startDate']
self.db.save(tender)

response = self.app.patch_json('/tenders/{}/contracts/{}?acc_token={}'.format(self.tender_id, self.contract_id, self.tender_token),
Expand All @@ -157,7 +160,7 @@ def test_create_tender_contract(self):

# at next steps we test to create contract in 'cancelled' tender status
response = self.app.post_json('/tenders?acc_token={}',
{"data": test_tender_data})
{"data": self.initial_data})
self.assertEqual(response.status, '201 Created')
tender_id = response.json['data']['id']
tender_token = response.json['access']['token']
Expand All @@ -179,17 +182,6 @@ def test_patch_tender_contract(self):
self.tender_id))
self.contract_id = response.json['data'][0]['id']

response = self.app.patch_json('/tenders/{}/contracts/{}?acc_token={}'.format(self.tender_id, self.contract_id, self.tender_token), {"data": {"status": "active"}}, status=403)
self.assertEqual(response.status, '403 Forbidden')
self.assertEqual(response.content_type, 'application/json')
self.assertIn("Can't sign contract before stand-still period end (", response.json['errors'][0]["description"])

# at next steps we test to patch contract in 'complete' tender status
tender = self.db.get(self.tender_id)
for i in tender.get('awards', []):
i['complaintPeriod']['endDate'] = i['complaintPeriod']['startDate']
self.db.save(tender)

response = self.app.patch_json('/tenders/{}/contracts/{}?acc_token={}'.format(self.tender_id, self.contract_id, self.tender_token),
{"data": {"status": "active"}})
self.assertEqual(response.status, '200 OK')
Expand Down Expand Up @@ -221,13 +213,13 @@ def test_patch_tender_contract(self):

# at next steps we test to patch contract in 'cancelled' tender status
response = self.app.post_json('/tenders?acc_token={}',
{"data": test_tender_data})
{"data": self.initial_data})
self.assertEqual(response.status, '201 Created')
tender_id = response.json['data']['id']
tender_token = response.json['access']['token']

response = self.app.post_json('/tenders/{}/awards?acc_token={}'.format(
tender_id, tender_token), {'data': {'suppliers': [test_tender_data["procuringEntity"]], 'status': 'pending'}})
tender_id, tender_token), {'data': {'suppliers': [self.initial_data["procuringEntity"]], 'status': 'pending'}})
award_id = response.json['data']['id']
response = self.app.patch_json('/tenders/{}/awards/{}?acc_token={}'.format(tender_id, award_id, tender_token), {"data": {"status": "active"}})

Expand Down Expand Up @@ -315,6 +307,115 @@ def test_get_tender_contracts(self):
u'url', u'name': u'tender_id'}
])


class TenderNegotiationContractResourceTest(TenderContractResourceTest):
initial_data = test_tender_negotiation_data

def test_patch_tender_contract(self):
response = self.app.get('/tenders/{}/contracts'.format(
self.tender_id))
self.contract_id = response.json['data'][0]['id']

response = self.app.patch_json('/tenders/{}/contracts/{}?acc_token={}'.format(self.tender_id, self.contract_id, self.tender_token), {"data": {"status": "active"}}, status=403)
self.assertEqual(response.status, '403 Forbidden')
self.assertEqual(response.content_type, 'application/json')
self.assertIn("Can't sign contract before stand-still period end (", response.json['errors'][0]["description"])

# at next steps we test to patch contract in 'complete' tender status
tender = self.db.get(self.tender_id)
for i in tender.get('awards', []):
i['complaintPeriod']['endDate'] = i['complaintPeriod']['startDate']
self.db.save(tender)

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

response = self.app.patch_json('/tenders/{}/contracts/{}?acc_token={}'.format(
self.tender_id, self.contract_id, self.tender_token), {"data": {"status": "cancelled"}}, status=403)
self.assertEqual(response.status, '403 Forbidden')
self.assertEqual(response.content_type, 'application/json')
self.assertEqual(response.json['errors'][0]["description"], "Can't update contract in current (complete) tender status")

response = self.app.patch_json('/tenders/{}/contracts/{}?acc_token={}'.format(
self.tender_id, self.contract_id, self.tender_token), {"data": {"status": "pending"}}, status=403)
self.assertEqual(response.status, '403 Forbidden')
self.assertEqual(response.content_type, 'application/json')
self.assertEqual(response.json['errors'][0]["description"], "Can't update contract in current (complete) tender status")

response = self.app.patch_json('/tenders/{}/contracts/{}?acc_token={}'.format(self.tender_id, self.contract_id, self.tender_token),
{"data": {"status": "active"}}, status=403)
self.assertEqual(response.status, '403 Forbidden')
self.assertEqual(response.content_type, 'application/json')
self.assertEqual(response.json['errors'][0]["description"], "Can't update contract in current (complete) tender status")

response = self.app.patch_json('/tenders/{}/contracts/{}?acc_token={}'.format(self.tender_id, self.contract_id, self.tender_token),
{"data": {"awardID": "894917dc8b1244b6aab9ab0ad8c8f48a"}}, status=422)
self.assertEqual(response.status, '422 Unprocessable Entity')
self.assertEqual(response.content_type, 'application/json')

# at next steps we test to patch contract in 'cancelled' tender status
response = self.app.post_json('/tenders?acc_token={}',
{"data": self.initial_data})
self.assertEqual(response.status, '201 Created')
tender_id = response.json['data']['id']
tender_token = response.json['access']['token']

response = self.app.post_json('/tenders/{}/awards?acc_token={}'.format(
tender_id, tender_token), {'data': {'suppliers': [self.initial_data["procuringEntity"]], 'status': 'pending'}})
award_id = response.json['data']['id']
response = self.app.patch_json('/tenders/{}/awards/{}?acc_token={}'.format(tender_id, award_id, tender_token), {"data": {"status": "active"}})

response = self.app.get('/tenders/{}/contracts'.format(
tender_id))
contract_id = response.json['data'][0]['id']

response = self.app.post_json('/tenders/{}/cancellations?acc_token={}'.format(
tender_id, tender_token), {'data': {'reason': 'cancellation reason', 'status': 'active'}})
self.assertEqual(response.status, '201 Created')

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

response = self.app.patch_json('/tenders/{}/contracts/{}?acc_token={}'.format(tender_id, contract_id, tender_token),
{"data": {"awardID": "894917dc8b1244b6aab9ab0ad8c8f48a"}}, status=422)
self.assertEqual(response.status, '422 Unprocessable Entity')
self.assertEqual(response.content_type, 'application/json')

response = self.app.patch_json('/tenders/{}/contracts/{}?acc_token={}'.format(tender_id, contract_id, tender_token),
{"data": {"status": "active"}}, status=403)
self.assertEqual(response.status, '403 Forbidden')
self.assertEqual(response.content_type, 'application/json')
self.assertEqual(response.json['errors'][0]["description"], "Can't update contract in current (cancelled) tender status")

response = self.app.patch_json('/tenders/{}/contracts/some_id?acc_token={}'.format(self.tender_id, self.tender_token),
{"data": {"status": "active"}}, status=404)
self.assertEqual(response.status, '404 Not Found')
self.assertEqual(response.content_type, 'application/json')
self.assertEqual(response.json['status'], 'error')
self.assertEqual(response.json['errors'], [
{u'description': u'Not Found', u'location':
u'url', u'name': u'contract_id'}
])

response = self.app.patch_json('/tenders/some_id/contracts/some_id', {"data": {"status": "active"}}, status=404)
self.assertEqual(response.status, '404 Not Found')
self.assertEqual(response.content_type, 'application/json')
self.assertEqual(response.json['status'], 'error')
self.assertEqual(response.json['errors'], [
{u'description': u'Not Found', u'location':
u'url', u'name': u'tender_id'}
])

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


class TenderContractDocumentResourceTest(BaseTenderContentWebTest):
initial_status = 'active'
initial_bids = None
Expand All @@ -323,7 +424,7 @@ def setUp(self):
super(TenderContractDocumentResourceTest, self).setUp()
# Create award
response = self.app.post_json('/tenders/{}/awards?acc_token={}'.format(
self.tender_id, self.tender_token), {'data': {'suppliers': [test_tender_data["procuringEntity"]], 'status': 'pending'}})
self.tender_id, self.tender_token), {'data': {'suppliers': [self.initial_data["procuringEntity"]], 'status': 'pending'}})
award = response.json['data']
self.award_id = award['id']
response = self.app.patch_json('/tenders/{}/awards/{}?acc_token={}'.format(self.tender_id, self.award_id, self.tender_token),
Expand Down
15 changes: 10 additions & 5 deletions openprocurement/tender/limited/tests/tender.py
Original file line number Diff line number Diff line change
Expand Up @@ -579,7 +579,8 @@ def test_patch_tender(self):

save_tender = self.db.get(tender['id'])
for i in save_tender.get('awards', []):
i['complaintPeriod']['endDate'] = i['complaintPeriod']['startDate']
if i.get('complaintPeriod', {}): # works for negotiation tender
i['complaintPeriod']['endDate'] = i['complaintPeriod']['startDate']
self.db.save(save_tender)

response = self.app.patch_json('/tenders/{}/contracts/{}?acc_token={}'.format(
Expand Down Expand Up @@ -746,7 +747,8 @@ def test_single_award_tender(self):
# time travel
tender = self.db.get(tender_id)
for i in tender.get('awards', []):
i['complaintPeriod']['endDate'] = i['complaintPeriod']['startDate']
if i.get('complaintPeriod', {}): # reporting procedure does not have complaintPeriod
i['complaintPeriod']['endDate'] = i['complaintPeriod']['startDate']
self.db.save(tender)

# sign contract
Expand Down Expand Up @@ -785,7 +787,8 @@ def test_single_award_tender(self):
# time travel
tender = self.db.get(tender_id)
for i in tender.get('awards', []):
i['complaintPeriod']['endDate'] = i['complaintPeriod']['startDate']
if i.get('complaintPeriod', {}): # reporting procedure does not have complaintPeriod
i['complaintPeriod']['endDate'] = i['complaintPeriod']['startDate']
self.db.save(tender)

# set award to cancelled
Expand Down Expand Up @@ -866,7 +869,8 @@ def test_multiple_awards_tender(self):
# time travel
tender = self.db.get(tender_id)
for i in tender.get('awards', []):
i['complaintPeriod']['endDate'] = i['complaintPeriod']['startDate']
if i.get('complaintPeriod', {}): # reporting procedure does not have complaintPeriod
i['complaintPeriod']['endDate'] = i['complaintPeriod']['startDate']
self.db.save(tender)

# sign contract
Expand Down Expand Up @@ -982,7 +986,8 @@ def test_tender_cancellation(self):

tender = self.db.get(tender_id)
for i in tender.get('awards', []):
i['complaintPeriod']['endDate'] = i['complaintPeriod']['startDate']
if i.get('complaintPeriod', {}): # works for negotiation tender
i['complaintPeriod']['endDate'] = i['complaintPeriod']['startDate']
self.db.save(tender)

# sign contract
Expand Down

0 comments on commit 49a42c0

Please sign in to comment.