Skip to content

Commit

Permalink
Merge pull request #27 from VolVoz/required_fields
Browse files Browse the repository at this point in the history
update dateSigned
  • Loading branch information
kroman0 committed Mar 21, 2016
2 parents 5698cff + ca0b632 commit 7df16fc
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 1 deletion.
13 changes: 12 additions & 1 deletion openprocurement/tender/limited/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
from schematics.types import StringType, BaseType, MD5Type
from schematics.types.compound import ModelType, ListType, DictType
from schematics.types.serializable import serializable
from schematics.exceptions import ValidationError
from openprocurement.api.models import (
plain_role, view_role, create_role, edit_role, enquiries_role, listing_role,
Administrator_role, schematics_default_role, schematics_embedded_role,
Expand All @@ -18,10 +19,18 @@
from openprocurement.api.models import get_now
from openprocurement.api.models import Cancellation as BaseCancellation
from openprocurement.api.models import ITender
from openprocurement.api.models import Contract as BaseContract
from openprocurement.tender.openua.models import Complaint
from openprocurement.tender.openua.models import Item, Contract
from openprocurement.tender.openua.models import Item


class Contract(BaseContract):
items = ListType(ModelType(Item))

def validate_dateSigned(self, data, value):
if value and value > get_now():
raise ValidationError(u"Contract signature date can't be in the future")

class Award(Model):
""" An award for the given procurement. There may be more than one award
per contracting process e.g. because the contract is split amongst
Expand Down Expand Up @@ -174,6 +183,8 @@ def import_data(self, raw_data, **kw):

ReportingTender = Tender

class Contract(BaseContract):
items = ListType(ModelType(Item))

@implementer(ITender)
class Tender(ReportingTender):
Expand Down
11 changes: 11 additions & 0 deletions openprocurement/tender/limited/tests/contract.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
# -*- coding: utf-8 -*-
import unittest
from iso8601 import parse_date
from datetime import timedelta

from openprocurement.api.models import get_now
from openprocurement.tender.limited.tests.base import (
BaseTenderContentWebTest, test_tender_data, test_tender_negotiation_data,
test_tender_negotiation_quick_data)
Expand Down Expand Up @@ -201,6 +203,15 @@ def test_patch_tender_contract(self):
self.assertEqual(response.status, '200 OK')
self.assertEqual(response.json['data']['value']['amount'], 238)

one_hour_in_furure = (get_now() + timedelta(hours=1)).isoformat()
response = self.app.patch_json('/tenders/{}/contracts/{}?acc_token={}'.format(self.tender_id, self.contract_id, self.tender_token), {"data": {"dateSigned": one_hour_in_furure}}, status=422)
self.assertEqual(response.status, '422 Unprocessable Entity')
self.assertEqual(response.json['errors'], [{u'description': [u"Contract signature date can't be in the future"], u'location': u'body', u'name': u'dateSigned'}])

custom_signature_date = get_now().isoformat()
response = self.app.patch_json('/tenders/{}/contracts/{}?acc_token={}'.format(self.tender_id, self.contract_id, self.tender_token), {"data": {"dateSigned": custom_signature_date}})
self.assertEqual(response.status, '200 OK')

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

0 comments on commit 7df16fc

Please sign in to comment.