Skip to content

Commit

Permalink
Version up, Added procuringEntity.kind
Browse files Browse the repository at this point in the history
  • Loading branch information
kroman0 committed Apr 13, 2016
1 parent aa20b8a commit ff5c935
Show file tree
Hide file tree
Showing 12 changed files with 287 additions and 288 deletions.
1 change: 1 addition & 0 deletions openprocurement/tender/openua/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -436,6 +436,7 @@ class Options:

create_accreditation = 3
edit_accreditation = 4
procuring_entity_kinds = ['general', 'special', 'defense']

def __acl__(self):
acl = [
Expand Down
12 changes: 6 additions & 6 deletions openprocurement/tender/openua/tests/auction.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

from openprocurement.api.models import get_now
from openprocurement.tender.openua.tests.base import (
BaseTenderUAContentWebTest, test_tender_ua_data, test_features_tender_ua_data, test_bids)
from openprocurement.api.tests.base import test_features_tender_data, test_lots
BaseTenderUAContentWebTest, test_tender_data, test_features_tender_ua_data, test_bids)
from openprocurement.api.tests.base import test_features_tender_data, test_lots, test_organization

# from openprocurement.api.tests.base import BaseTenderWebTest, test_tender_data, test_features_tender_data, test_bids, test_lots

Expand Down Expand Up @@ -286,7 +286,7 @@ class TenderSameValueAuctionResourceTest(BaseTenderUAContentWebTest):
initial_bids = [
{
"tenderers": [
test_tender_ua_data["procuringEntity"]
test_organization
],
"value": {
"amount": 469,
Expand Down Expand Up @@ -335,7 +335,7 @@ def test_post_tender_auction_reversed(self):

class TenderLotAuctionResourceTest(TenderAuctionResourceTest):
initial_lots = test_lots
initial_data = test_tender_ua_data
initial_data = test_tender_data


def test_get_tender_auction(self):
Expand Down Expand Up @@ -1004,7 +1004,7 @@ class TenderFeaturesAuctionResourceTest(BaseTenderUAContentWebTest):
for i in test_features_tender_data['features']
],
"tenderers": [
test_tender_ua_data["procuringEntity"]
test_organization
],
"value": {
"amount": 469,
Expand All @@ -1022,7 +1022,7 @@ class TenderFeaturesAuctionResourceTest(BaseTenderUAContentWebTest):
for i in test_features_tender_data['features']
],
"tenderers": [
test_tender_ua_data["procuringEntity"]
test_organization
],
"value": {
"amount": 479,
Expand Down
108 changes: 54 additions & 54 deletions openprocurement/tender/openua/tests/award.py

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions openprocurement/tender/openua/tests/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,21 @@
import webtest
from datetime import datetime, timedelta
from openprocurement.api.models import get_now
from openprocurement.api.tests.base import (test_tender_data,
from openprocurement.api.tests.base import (test_tender_data as test_tender_data_api,
now,
test_features_tender_data,
BaseTenderWebTest,
PrefixedRequestClass)

from openprocurement.api.tests.base import test_bids as base_test_bids
test_tender_ua_data = test_tender_data.copy()
test_tender_ua_data['procurementMethodType'] = "aboveThresholdUA"
# test_tender_ua_data["enquiryPeriod"] = {}
del test_tender_ua_data["enquiryPeriod"]
test_tender_ua_data["tenderPeriod"] = {
test_tender_data = test_tender_ua_data = test_tender_data_api.copy()
test_tender_data['procurementMethodType'] = "aboveThresholdUA"
# test_tender_data["enquiryPeriod"] = {}
del test_tender_data["enquiryPeriod"]
test_tender_data["tenderPeriod"] = {
"endDate": (now + timedelta(days=16)).isoformat()
}
test_tender_ua_data["items"] = [{
test_tender_data["items"] = [{
"description": u"футляри до державних нагород",
"description_en": u"Cases for state awards",
"classification": {
Expand Down Expand Up @@ -56,7 +56,7 @@
test_bids.append(i)


# test_tender_ua_data["tenderPeriod"] = test_tender_ua_data["enquiryPeriod"].copy()
# test_tender_data["tenderPeriod"] = test_tender_data["enquiryPeriod"].copy()

test_features_tender_ua_data = test_features_tender_data.copy()
test_features_tender_ua_data['procurementMethodType'] = "aboveThresholdUA"
Expand All @@ -65,15 +65,15 @@
test_features_tender_ua_data["tenderPeriod"] = {
"endDate": (now + timedelta(days=16)).isoformat()
}
test_features_tender_ua_data["items"][0]["deliveryDate"] = test_tender_ua_data["items"][0]["deliveryDate"]
test_features_tender_ua_data["items"][0]["deliveryAddress"] = test_tender_ua_data["items"][0]["deliveryAddress"]
test_features_tender_ua_data["items"][0]["deliveryDate"] = test_tender_data["items"][0]["deliveryDate"]
test_features_tender_ua_data["items"][0]["deliveryAddress"] = test_tender_data["items"][0]["deliveryAddress"]
# test_features_tender_ua_data["tenderPeriod"] = test_features_tender_ua_data["enquiryPeriod"].copy()


from openprocurement.api.utils import VERSION, apply_data_patch

class BaseTenderUAWebTest(BaseTenderWebTest):
initial_data = test_tender_ua_data
initial_data = test_tender_data
initial_status = None
initial_bids = None
initial_lots = None
Expand Down Expand Up @@ -253,7 +253,7 @@ def tearDown(self):


class BaseTenderUAContentWebTest(BaseTenderUAWebTest):
initial_data = test_tender_ua_data
initial_data = test_tender_data
initial_status = None
initial_bids = None
initial_lots = None
Expand Down
56 changes: 27 additions & 29 deletions openprocurement/tender/openua/tests/bid.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,18 @@

from openprocurement.tender.openua.tests.base import (
BaseTenderUAContentWebTest,
test_tender_ua_data,
test_tender_data,
test_features_tender_ua_data)

from openprocurement.api.tests.base import test_bids, now
from openprocurement.api.tests.base import test_bids, test_organization, now
from datetime import datetime, timedelta

class TenderBidResourceTest(BaseTenderUAContentWebTest):
initial_status = 'active.tendering'

def test_create_tender_biddder_invalid(self):
response = self.app.post_json('/tenders/some_id/bids', {
'data': {'tenderers': [test_tender_ua_data["procuringEntity"]], "value": {"amount": 500}}}, status=404)
'data': {'tenderers': [test_organization], "value": {"amount": 500}}}, status=404)
self.assertEqual(response.status, '404 Not Found')
self.assertEqual(response.content_type, 'application/json')
self.assertEqual(response.json['status'], 'error')
Expand Down Expand Up @@ -105,7 +105,7 @@ def test_create_tender_biddder_invalid(self):
])

response = self.app.post_json(request_path, {'data': {'selfEligible': True, 'selfQualified': True,
'tenderers': [test_tender_ua_data["procuringEntity"]]}}, status=422)
'tenderers': [test_organization]}}, status=422)
self.assertEqual(response.status, '422 Unprocessable Entity')
self.assertEqual(response.content_type, 'application/json')
self.assertEqual(response.json['status'], 'error')
Expand All @@ -114,7 +114,7 @@ def test_create_tender_biddder_invalid(self):
])

response = self.app.post_json(request_path, {'data': {'selfEligible': True, 'selfQualified': True,
'tenderers': [test_tender_ua_data["procuringEntity"]], "value": {"amount": 500, 'valueAddedTaxIncluded': False}}}, status=422)
'tenderers': [test_organization], "value": {"amount": 500, 'valueAddedTaxIncluded': False}}}, status=422)
self.assertEqual(response.status, '422 Unprocessable Entity')
self.assertEqual(response.content_type, 'application/json')
self.assertEqual(response.json['status'], 'error')
Expand All @@ -123,7 +123,7 @@ def test_create_tender_biddder_invalid(self):
])

response = self.app.post_json(request_path, {'data': {'selfEligible': True, 'selfQualified': True,
'tenderers': [test_tender_ua_data["procuringEntity"]], "value": {"amount": 500, 'currency': "USD"}}}, status=422)
'tenderers': [test_organization], "value": {"amount": 500, 'currency': "USD"}}}, status=422)
self.assertEqual(response.status, '422 Unprocessable Entity')
self.assertEqual(response.content_type, 'application/json')
self.assertEqual(response.json['status'], 'error')
Expand All @@ -132,7 +132,7 @@ def test_create_tender_biddder_invalid(self):
])

response = self.app.post_json(request_path, {'data': {'selfEligible': True, 'selfQualified': True,
'tenderers': test_tender_ua_data["procuringEntity"], "value": {"amount": 500}}}, status=422)
'tenderers': test_organization, "value": {"amount": 500}}}, status=422)
self.assertEqual(response.status, '422 Unprocessable Entity')
self.assertEqual(response.content_type, 'application/json')
self.assertEqual(response.json['status'], 'error')
Expand All @@ -143,24 +143,24 @@ def test_create_tender_biddder_invalid(self):
def test_create_tender_bidder(self):
response = self.app.post_json('/tenders/{}/bids'.format(
self.tender_id), {'data': {'selfEligible': True, 'selfQualified': True,
'tenderers': [test_tender_ua_data["procuringEntity"]], "value": {"amount": 500}}})
'tenderers': [test_organization], "value": {"amount": 500}}})
self.assertEqual(response.status, '201 Created')
self.assertEqual(response.content_type, 'application/json')
bid = response.json['data']
self.assertEqual(bid['tenderers'][0]['name'], test_tender_ua_data["procuringEntity"]['name'])
self.assertEqual(bid['tenderers'][0]['name'], test_organization['name'])
self.assertIn('id', bid)
self.assertIn(bid['id'], response.headers['Location'])

# set tender period in future
data = deepcopy(test_tender_ua_data)
data = deepcopy(test_tender_data)
data["tenderPeriod"]["endDate"] = (now + timedelta(days=17)).isoformat()
data["tenderPeriod"]["startDate"] = (now + timedelta(days=1)).isoformat()
response = self.app.patch_json('/tenders/{}?acc_token={}'.format(self.tender_id, self.tender_token), {'data': {'tenderPeriod': data["tenderPeriod"]}})
self.assertEqual(response.status, '200 OK')

response = self.app.post_json('/tenders/{}/bids'.format(
self.tender_id), {'data': {'selfEligible': True, 'selfQualified': True,
'tenderers': [test_tender_ua_data["procuringEntity"]], "value": {"amount": 500}}}, status=403)
'tenderers': [test_organization], "value": {"amount": 500}}}, status=403)
self.assertEqual(response.status, '403 Forbidden')
self.assertEqual(response.content_type, 'application/json')
self.assertIn('Bid can be added only during the tendering period', response.json['errors'][0]["description"])
Expand All @@ -169,15 +169,15 @@ def test_create_tender_bidder(self):

response = self.app.post_json('/tenders/{}/bids'.format(
self.tender_id), {'data': {'selfEligible': True, 'selfQualified': True,
'tenderers': [test_tender_ua_data["procuringEntity"]], "value": {"amount": 500}}}, status=403)
'tenderers': [test_organization], "value": {"amount": 500}}}, 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 bid in current (complete) tender status")

def test_patch_tender_bidder(self):
response = self.app.post_json('/tenders/{}/bids'.format(
self.tender_id), {'data': {'selfEligible': True, 'selfQualified': True,
'tenderers': [test_tender_ua_data["procuringEntity"]], "value": {"amount": 500}}})
'tenderers': [test_organization], "value": {"amount": 500}}})
self.assertEqual(response.status, '201 Created')
self.assertEqual(response.content_type, 'application/json')
bid = response.json['data']
Expand All @@ -199,7 +199,7 @@ def test_patch_tender_bidder(self):
self.assertEqual(response.json['data']['date'], bid['date'])
self.assertNotEqual(response.json['data']['tenderers'][0]['name'], bid['tenderers'][0]['name'])

response = self.app.patch_json('/tenders/{}/bids/{}?acc_token={}'.format(self.tender_id, bid['id'], bid_token), {"data": {"value": {"amount": 500}, 'tenderers': [test_tender_ua_data["procuringEntity"]]}})
response = self.app.patch_json('/tenders/{}/bids/{}?acc_token={}'.format(self.tender_id, bid['id'], bid_token), {"data": {"value": {"amount": 500}, 'tenderers': [test_organization]}})
self.assertEqual(response.status, '200 OK')
self.assertEqual(response.content_type, 'application/json')
self.assertEqual(response.json['data']['date'], bid['date'])
Expand Down Expand Up @@ -246,7 +246,7 @@ def test_patch_tender_bidder(self):
def test_get_tender_bidder(self):
response = self.app.post_json('/tenders/{}/bids'.format(
self.tender_id), {'data': {'selfEligible': True, 'selfQualified': True,
'tenderers': [test_tender_ua_data["procuringEntity"]], "value": {"amount": 500}}})
'tenderers': [test_organization], "value": {"amount": 500}}})
self.assertEqual(response.status, '201 Created')
self.assertEqual(response.content_type, 'application/json')
bid = response.json['data']
Expand Down Expand Up @@ -299,7 +299,7 @@ def test_get_tender_bidder(self):
def test_delete_tender_bidder(self):
response = self.app.post_json('/tenders/{}/bids'.format(
self.tender_id), {'data': {'selfEligible': True, 'selfQualified': True,
'tenderers': [test_tender_ua_data["procuringEntity"]], "value": {"amount": 500}}})
'tenderers': [test_organization], "value": {"amount": 500}}})
self.assertEqual(response.status, '201 Created')
self.assertEqual(response.content_type, 'application/json')
bid = response.json['data']
Expand All @@ -316,10 +316,8 @@ def test_delete_tender_bidder(self):
self.assertFalse('date' in response.json['data'])

revisions = self.db.get(self.tender_id).get('revisions')
self.assertEqual(revisions[-2][u'changes'][-1]['op'], u'remove')
self.assertEqual(revisions[-2][u'changes'][-1]['path'], u'/bids')
self.assertEqual(revisions[-1][u'changes'][-1]['op'], u'replace')
self.assertEqual(revisions[-1][u'changes'][-1]['path'], u'/bids/0/status')
self.assertTrue(any([i for i in revisions[-2][u'changes'] if i['op'] == u'remove' and i['path'] == u'/bids']))
self.assertTrue(any([i for i in revisions[-1][u'changes'] if i['op'] == u'replace' and i['path'] == u'/bids/0']))

response = self.app.delete('/tenders/{}/bids/some_id'.format(self.tender_id), status=404)
self.assertEqual(response.status, '404 Not Found')
Expand Down Expand Up @@ -355,7 +353,7 @@ def test_delete_tender_bidder(self):
def test_deleted_bid_is_not_restorable(self):
response = self.app.post_json('/tenders/{}/bids'.format(
self.tender_id), {'data': {'selfEligible': True, 'selfQualified': True,
'tenderers': [test_tender_ua_data["procuringEntity"]], "value": {"amount": 500}}})
'tenderers': [test_organization], "value": {"amount": 500}}})
self.assertEqual(response.status, '201 Created')
self.assertEqual(response.content_type, 'application/json')
bid = response.json['data']
Expand Down Expand Up @@ -385,7 +383,7 @@ def test_deleted_bid_do_not_locks_tender_in_state(self):
for bid_amount in (400, 405):
response = self.app.post_json('/tenders/{}/bids'.format(
self.tender_id), {'data': {'selfEligible': True, 'selfQualified': True,
'tenderers': [test_tender_ua_data["procuringEntity"]], "value": {"amount": bid_amount}}})
'tenderers': [test_organization], "value": {"amount": bid_amount}}})
self.assertEqual(response.status, '201 Created')
self.assertEqual(response.content_type, 'application/json')
bids.append(response.json['data'])
Expand Down Expand Up @@ -417,7 +415,7 @@ def test_deleted_bid_do_not_locks_tender_in_state(self):
def test_get_tender_tenderers(self):
response = self.app.post_json('/tenders/{}/bids'.format(
self.tender_id), {'data': {'selfEligible': True, 'selfQualified': True,
'tenderers': [test_tender_ua_data["procuringEntity"]], "value": {"amount": 500}}})
'tenderers': [test_organization], "value": {"amount": 500}}})
self.assertEqual(response.status, '201 Created')
self.assertEqual(response.content_type, 'application/json')
bid = response.json['data']
Expand Down Expand Up @@ -446,7 +444,7 @@ def test_get_tender_tenderers(self):
def test_bid_Administrator_change(self):
response = self.app.post_json('/tenders/{}/bids'.format(
self.tender_id), {'data': {'selfEligible': True, 'selfQualified': True,
'tenderers': [test_tender_ua_data["procuringEntity"]], "value": {"amount": 500}}})
'tenderers': [test_organization], "value": {"amount": 500}}})
self.assertEqual(response.status, '201 Created')
self.assertEqual(response.content_type, 'application/json')
bid = response.json['data']
Expand Down Expand Up @@ -606,7 +604,7 @@ def test_features_bidder(self):
for i in self.initial_data['features']
],
"tenderers": [
test_tender_ua_data["procuringEntity"]
test_organization
],
"value": {
"amount": 469,
Expand All @@ -625,7 +623,7 @@ def test_features_bidder(self):
for i in self.initial_data['features']
],
"tenderers": [
test_tender_ua_data["procuringEntity"]
test_organization
],
"value": {
"amount": 479,
Expand All @@ -648,7 +646,7 @@ def test_features_bidder(self):
def test_features_bidder_invalid(self):
data = {
"tenderers": [
test_tender_ua_data["procuringEntity"]
test_organization
],
"value": {
"amount": 469,
Expand Down Expand Up @@ -707,7 +705,7 @@ def setUp(self):
# Create bid
response = self.app.post_json('/tenders/{}/bids'.format(
self.tender_id), {'data': {'selfEligible': True, 'selfQualified': True,
'tenderers': [test_tender_ua_data["procuringEntity"]], "value": {"amount": 500}}})
'tenderers': [test_organization], "value": {"amount": 500}}})
bid = response.json['data']
self.bid_id = bid['id']
self.bid_token = response.json['access']['token']
Expand Down Expand Up @@ -1010,7 +1008,7 @@ def test_patch_tender_bidder_document(self):
def test_create_tender_bidder_document_nopending(self):
response = self.app.post_json('/tenders/{}/bids'.format(
self.tender_id), {'data': {'selfEligible': True, 'selfQualified': True,
'tenderers': [test_tender_ua_data["procuringEntity"]], "value": {"amount": 500}}})
'tenderers': [test_organization], "value": {"amount": 500}}})
bid = response.json['data']
bid_id = bid['id']
bid_token = response.json['access']['token']
Expand Down

0 comments on commit ff5c935

Please sign in to comment.