Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/a245493633932394_remove_features'
Browse files Browse the repository at this point in the history
  • Loading branch information
kroman0 committed Feb 17, 2017
2 parents 5d48f83 + 819557c commit 0a44dca
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 2 deletions.
7 changes: 6 additions & 1 deletion openprocurement/tender/openua/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ def calculate_normalized_date(dt, tender, ceil=False):

def bids_validation_wrapper(validation_func):
def validator(klass, data, value):
orig_data = data
while not isinstance(data['__parent__'], Tender):
data = data['__parent__']
if data['status'] in ('deleted', 'invalid', 'draft'):
Expand All @@ -73,7 +74,7 @@ def validator(klass, data, value):
if request.method == "PATCH" and isinstance(tender, Tender) and request.authenticated_role == "tender_owner":
# disable bids validation on tender PATCH requests as tender bids will be invalidated
return
return validation_func(klass, data, value)
return validation_func(klass, orig_data, value)
return validator


Expand Down Expand Up @@ -235,6 +236,10 @@ def validate_relatedLot(self, data, relatedLot):

class Parameter(BaseParameter):

@bids_validation_wrapper
def validate_value(self, data, value):
BaseParameter._validator_functions['value'](self, data, value)

@bids_validation_wrapper
def validate_code(self, data, code):
BaseParameter._validator_functions['code'](self, data, code)
Expand Down
24 changes: 24 additions & 0 deletions openprocurement/tender/openua/tests/tender.py
Original file line number Diff line number Diff line change
Expand Up @@ -1297,6 +1297,30 @@ def test_invalid_bid_tender_features(self):
bid_id = response.json['data']['id']
bid_token = response.json['access']['token']

response = self.app.patch_json('/tenders/{}?acc_token={}'.format(tender_id, owner_token), {"data": {"features": [{"code": "OCDS-123-POSTPONEMENT"}]}})
self.assertEqual(response.status, '200 OK')
self.assertEqual(response.content_type, 'application/json')
self.assertEqual("OCDS-123-POSTPONEMENT", response.json['data']["features"][0]["code"])

response = self.app.patch_json('/tenders/{}/bids/{}?acc_token={}'.format(tender_id, bid_id, bid_token),
{'data': {'parameters': [{"code": "OCDS-123-POSTPONEMENT"}],
'status': 'active'}})
self.assertEqual(response.status, '200 OK')
self.assertEqual(response.content_type, 'application/json')
self.assertEqual("OCDS-123-POSTPONEMENT", response.json['data']["parameters"][0]["code"])

response = self.app.patch_json('/tenders/{}?acc_token={}'.format(tender_id, owner_token), {"data": {"features": [{"enum": [{"value": 0.2}]}]}})
self.assertEqual(response.status, '200 OK')
self.assertEqual(response.content_type, 'application/json')
self.assertEqual(0.2, response.json['data']["features"][0]["enum"][0]["value"])

response = self.app.patch_json('/tenders/{}/bids/{}?acc_token={}'.format(tender_id, bid_id, bid_token),
{'data': {'parameters': [{"value": 0.2}],
'status': 'active'}})
self.assertEqual(response.status, '200 OK')
self.assertEqual(response.content_type, 'application/json')
self.assertEqual("OCDS-123-POSTPONEMENT", response.json['data']["parameters"][0]["code"])

response = self.app.patch_json('/tenders/{}?acc_token={}'.format(tender_id, owner_token), {"data": {"features": []}})
self.assertEqual(response.status, '200 OK')
self.assertEqual(response.content_type, 'application/json')
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from setuptools import setup, find_packages
import os

version = '2.3.22'
version = '2.3.23'

requires = [
'setuptools',
Expand Down

0 comments on commit 0a44dca

Please sign in to comment.