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 Jan 18, 2017
2 parents 70c3d38 + fd90625 commit 3cf7abb
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 1 deletion.
2 changes: 1 addition & 1 deletion openprocurement/tender/openua/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -237,7 +237,7 @@ def validate_value(self, data, value):
raise ValidationError(u"valueAddedTaxIncluded of bid should be identical to valueAddedTaxIncluded of value of lot")

def validate_relatedLot(self, data, relatedLot):
if isinstance(data['__parent__'], Model) and (data['__parent__'].status not in ('invalid', 'deleted')) and relatedLot not in [i.id for i in get_tender(data['__parent__']).lots]:
if isinstance(data['__parent__'], Model) and (data['__parent__'].status not in ('invalid', 'deleted', 'draft')) and relatedLot not in [i.id for i in get_tender(data['__parent__']).lots]:
raise ValidationError(u"relatedLot should be one of lots")

class Parameter(BaseParameter):
Expand Down
43 changes: 43 additions & 0 deletions openprocurement/tender/openua/tests/tender.py
Original file line number Diff line number Diff line change
Expand Up @@ -1297,6 +1297,49 @@ def test_invalid_bid_tender_features(self):
self.assertEqual(response.json['data']['status'], 'unsuccessful')
self.assertNotEqual(response.json['data']['date'], tender['date'])

def test_invalid_bid_tender_lot(self):
self.app.authorization = ('Basic', ('broker', ''))
# empty tenders listing
response = self.app.get('/tenders')
self.assertEqual(response.json['data'], [])
# create tender
response = self.app.post_json('/tenders', {"data": test_tender_data})
self.assertEqual(response.status, '201 Created')
self.assertEqual(response.content_type, 'application/json')
tender = response.json['data']
tender_id = self.tender_id = response.json['data']['id']
owner_token = response.json['access']['token']

lots = []
for lot in test_lots * 2:
response = self.app.post_json('/tenders/{}/lots?acc_token={}'.format(tender_id, owner_token), {'data': lot})
self.assertEqual(response.status, '201 Created')
self.assertEqual(response.content_type, 'application/json')
lots.append(response.json['data']['id'])

# create bid
self.app.authorization = ('Basic', ('broker', ''))
response = self.app.post_json('/tenders/{}/bids'.format(tender_id),
{'data': {'selfEligible': True, 'selfQualified': True,
'status': 'draft',
'lotValues': [{"value": {"amount": 500}, 'relatedLot': i} for i in lots],
'tenderers': [test_organization]}})
self.assertEqual(response.status, '201 Created')
self.assertEqual(response.content_type, 'application/json')
bid_id = response.json['data']['id']
bid_token = response.json['access']['token']

response = self.app.delete('/tenders/{}/lots/{}?acc_token={}'.format(tender_id, lots[0], owner_token))
self.assertEqual(response.status, '200 OK')
self.assertEqual(response.content_type, 'application/json')

# switch to active.qualification
self.set_status('active.auction', {"auctionPeriod": {"startDate": None}, 'status': 'active.tendering'})
self.app.authorization = ('Basic', ('chronograph', ''))
response = self.app.patch_json('/tenders/{}'.format(tender_id), {"data": {"id": tender_id}})
self.assertEqual(response.json['data']['status'], 'unsuccessful')
self.assertNotEqual(response.json['data']['date'], tender['date'])

def test_one_valid_bid_tender_ua(self):
self.app.authorization = ('Basic', ('broker', ''))
# empty tenders listing
Expand Down

0 comments on commit 3cf7abb

Please sign in to comment.