Skip to content

Commit 20950e6

Browse files
committed
Modify tender only if patch data available
1 parent 238c22e commit 20950e6

2 files changed

Lines changed: 17 additions & 7 deletions

File tree

src/openprocurement/api/tests/tender.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,15 @@ def test_patch_tender(self):
201201
self.assertEqual(tender, new_tender)
202202
self.assertNotEqual(modified, new_modified)
203203

204+
response = self.app.patch_json('/tenders/{}'.format(
205+
tender['id']), {'data': {'modified': new_modified}})
206+
self.assertEqual(response.status, '200 OK')
207+
self.assertEqual(response.content_type, 'application/json')
208+
new_tender2 = response.json['data']
209+
new_modified2 = new_tender2.pop('modified')
210+
self.assertEqual(new_tender, new_tender2)
211+
self.assertEqual(new_modified, new_modified2)
212+
204213
def test_modified_tender(self):
205214
response = self.app.get('/tenders')
206215
self.assertEqual(response.status, '200 OK')

src/openprocurement/api/views.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -490,13 +490,14 @@ def patch(self):
490490
self.request.errors.status = 404
491491
return
492492
tender_data = filter_data(self.request.json_body['data'])
493-
if 'tenderID' not in tender_data:
494-
tender_data['tenderID'] = tender.tenderID
495-
try:
496-
tender.import_data(tender_data)
497-
tender.store(self.db)
498-
except Exception, e:
499-
return self.request.errors.add('body', 'data', str(e))
493+
if tender_data:
494+
if 'tenderID' not in tender_data:
495+
tender_data['tenderID'] = tender.tenderID
496+
try:
497+
tender.import_data(tender_data)
498+
tender.store(self.db)
499+
except Exception, e:
500+
return self.request.errors.add('body', 'data', str(e))
500501
return {'data': tender.serialize("view")}
501502

502503

0 commit comments

Comments
 (0)