Skip to content

Commit

Permalink
Merge branch 'a183841703369017_items_are_not_required'
Browse files Browse the repository at this point in the history
  • Loading branch information
vmaksymiv committed Sep 27, 2016
2 parents dd84605 + 5b2d2bc commit 150f845
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 4 deletions.
2 changes: 1 addition & 1 deletion openprocurement/contracting/api/databridge.py
Original file line number Diff line number Diff line change
Expand Up @@ -237,7 +237,7 @@ def _get_tender_contracts(self):
{"CONTRACT_ID": contract['id'], "TENDER_ID": tender['id']}))

for item in contract.get('items', []):
if 'deliveryDate' in item and 'startDate' in item['deliveryDate']:
if 'deliveryDate' in item and item['deliveryDate'].get('startDate') and item['deliveryDate'].get('endDate'):
if item['deliveryDate']['startDate'] > item['deliveryDate']['endDate']:
logger.info("Found dates missmatch {} and {}".format(item['deliveryDate']['startDate'], item['deliveryDate']['endDate']),
extra=journal_context({"MESSAGE_ID": DATABRIDGE_EXCEPTION}, params={"CONTRACT_ID": contract['id'], "TENDER_ID": tender['id']}))
Expand Down
2 changes: 1 addition & 1 deletion openprocurement/contracting/api/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ class Contract(SchematicsDocument, BaseContract):
revisions = ListType(ModelType(Revision), default=list())
dateModified = IsoDateTimeType()
_attachments = DictType(DictType(BaseType), default=dict()) # couchdb attachments
items = ListType(ModelType(Item), required=True, min_size=1, validators=[validate_cpv_group, validate_items_uniq])
items = ListType(ModelType(Item), required=False, min_size=1, validators=[validate_cpv_group, validate_items_uniq])
tender_token = StringType(required=True)
tender_id = StringType(required=True)
owner_token = StringType(default=lambda: uuid4().hex)
Expand Down
43 changes: 42 additions & 1 deletion openprocurement/contracting/api/tests/change.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,48 @@
# -*- coding: utf-8 -*-
import unittest
from copy import deepcopy
from openprocurement.api.models import get_now
from openprocurement.contracting.api.tests.base import BaseContractContentWebTest
from openprocurement.contracting.api.tests.base import (
BaseWebTest, BaseContractContentWebTest, test_contract_data)


class ContractNoItemsChangeTest(BaseWebTest):

def test_no_items_contract_change(self):
data = deepcopy(test_contract_data)
del data['items']
response = self.app.post_json('/contracts', {"data": data})
self.assertEqual(response.status, '201 Created')
self.assertEqual(response.content_type, 'application/json')
contract = response.json['data']
self.assertEqual(contract['status'], 'active')
self.assertNotIn('items', contract)
tender_token = data['tender_token']

response = self.app.patch_json('/contracts/{}/credentials?acc_token={}'.format(contract['id'], tender_token),
{'data': ''})
self.assertEqual(response.status, '200 OK')
token = response.json['access']['token']

response = self.app.post_json('/contracts/{}/changes?acc_token={}'.format(contract['id'], token),
{'data': {'rationale': u'причина зміни укр',
'rationaleTypes': ['qualityImprovement']}})
self.assertEqual(response.status, '201 Created')
change = response.json['data']
self.assertEqual(change['status'], 'pending')

response = self.app.patch_json('/contracts/{}/changes/{}?acc_token={}'.format(contract['id'], change['id'], token),
{'data': {'status': 'active'}})
self.assertEqual(response.status, '200 OK')
self.assertEqual(response.json['data']['status'], 'active')

response = self.app.patch_json('/contracts/{}?acc_token={}'.format(contract['id'], token),
{"data": {"status": "terminated", "amountPaid": {"amount": 100, "valueAddedTaxIncluded": True, "currency": "UAH"}}})
self.assertEqual(response.status, '200 OK')
self.assertEqual(response.json['data']['status'], 'terminated')

response = self.app.get('/contracts/{}'.format(contract['id']))
self.assertNotIn('items', response.json['data'])


class ContractChangesResourceTest(BaseContractContentWebTest):
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.9'
version = '2.3.10'

requires = [
'couchdb',
Expand Down

0 comments on commit 150f845

Please sign in to comment.