def setUp(self): super(TenderAuctionResourceTest, self).setUp() # Create tender with bids self.tender_data = test_tender_data.copy() self.tender_data['bids'] = [ { "id": "4879d3f8ee2443169b5fbbc9f89fa606", "status": "registration", "date": "2014-10-28T11:44:17.946", "bidders": [ test_tender_data["procuringEntity"] ], "totalValue": { "amount": 469, "currency": "UAH", "valueAddedTaxIncluded": True } }, { "id": "4879d3f8ee2443169b5fbbc9f89fa607", "status": "registration", "date": "2014-10-28T11:44:17.947", "bidders": [ test_tender_data["procuringEntity"] ], "totalValue": { "amount": 479, "currency": "UAH", "valueAddedTaxIncluded": True } } ] response = self.app.post_json('/tenders', {'data': self.tender_data}) tender = response.json['data'] self.tender_id = tender['id']
def test_listing(self): response = self.app.get('/tenders') self.assertEqual(response.status, '200 OK') self.assertEqual(len(response.json['data']), 0) tenders = [] for i in range(3): response = self.app.post_json('/tenders', {'data': test_tender_data}) self.assertEqual(response.status, '201 Created') self.assertEqual(response.content_type, 'application/json') tenders.append(response.json['data']) response = self.app.get('/tenders') self.assertEqual(response.status, '200 OK') self.assertEqual(len(response.json['data']), 3) self.assertEqual(set(response.json['data'][0]), set([u'id', u'dateModified'])) self.assertEqual(set([i['id'] for i in response.json['data']]), set([i['id'] for i in tenders])) self.assertEqual(set([i['dateModified'] for i in response.json['data']]), set([i['dateModified'] for i in tenders])) self.assertEqual([i['dateModified'] for i in response.json['data']], sorted([i['dateModified'] for i in tenders])) before = get_now().isoformat() response = self.app.get('/tenders?limit=2') self.assertEqual(response.status, '200 OK') self.assertEqual(len(response.json['data']), 2) self.assertFalse(before < response.json['next_page']['offset']) response = self.app.get('/tenders', params=[('opt_fields', 'status,enquiryPeriod')]) self.assertEqual(response.status, '200 OK') self.assertEqual(len(response.json['data']), 3) self.assertEqual(set(response.json['data'][0]), set([u'id', u'dateModified', u'status', u'enquiryPeriod'])) self.assertIn('opt_fields=status%2CenquiryPeriod', response.json['next_page']['uri']) response = self.app.get('/tenders?descending=1') self.assertEqual(response.status, '200 OK') self.assertEqual(response.content_type, 'application/json') self.assertEqual(len(response.json['data']), 3) self.assertEqual(set(response.json['data'][0]), set([u'id', u'dateModified'])) self.assertEqual(set([i['id'] for i in response.json['data']]), set([i['id'] for i in tenders])) self.assertEqual([i['dateModified'] for i in response.json['data']], sorted([i['dateModified'] for i in tenders], reverse=True)) test_tender_data2 = test_tender_data.copy() test_tender_data2['mode'] = 'test' response = self.app.post_json('/tenders', {'data': test_tender_data2}) self.assertEqual(response.status, '201 Created') self.assertEqual(response.content_type, 'application/json') response = self.app.get('/tenders?mode=test') self.assertEqual(response.status, '200 OK') self.assertEqual(len(response.json['data']), 1) response = self.app.get('/tenders?mode=_all_') self.assertEqual(response.status, '200 OK') self.assertEqual(len(response.json['data']), 4)
def test_create_tender_generated(self): data = test_tender_data.copy() #del data['awardPeriod'] data.update({'id': 'hash', 'doc_id': 'hash2', 'tenderID': 'hash3'}) response = self.app.post_json('/tenders', {'data': data}) self.assertEqual(response.status, '201 Created') self.assertEqual(response.content_type, 'application/json') tender = response.json['data'] self.assertEqual(set(tender), set([u'id', u'dateModified', u'tenderID', u'status', u'enquiryPeriod', u'owner', u'tenderPeriod', u'minimalStep', u'items', u'value', u'procuringEntity'])) self.assertNotEqual(data['id'], tender['id']) self.assertNotEqual(data['doc_id'], tender['id']) self.assertNotEqual(data['tenderID'], tender['tenderID'])
def test_docs_2pc(self): # Creating tender in draft status # data = test_tender_data.copy() data['status'] = 'draft' with open('docs/source/tutorial/tender-post-2pc.http', 'w') as self.app.file_obj: response = self.app.post_json( '/tenders?opt_pretty=1', {"data": data}) self.assertEqual(response.status, '201 Created') tender = response.json['data'] self.tender_id = tender['id'] owner_token = response.json['access']['token'] # switch to 'active.enquiries' with open('docs/source/tutorial/tender-patch-2pc.http', 'w') as self.app.file_obj: response = self.app.patch_json('/tenders/{}?acc_token={}'.format(tender['id'], owner_token), {'data': {"status": 'active.enquiries'}}) self.assertEqual(response.status, '200 OK')
# -*- coding: utf-8 -*- import os import webtest from datetime import datetime, timedelta from openprocurement.api.utils import apply_data_patch from openprocurement.api.tests.base import test_tender_data as base_data from openprocurement.api.tests.base import BaseTenderWebTest, PrefixedRequestClass now = datetime.now() test_tender_data = base_data.copy() del test_tender_data['enquiryPeriod'] del test_tender_data['tenderPeriod'] del test_tender_data['minimalStep'] test_tender_data['procurementMethodType'] = "reporting" class BaseTenderWebTest(BaseTenderWebTest): initial_data = test_tender_data initial_status = None initial_bids = None initial_lots = None def setUp(self): self.app = webtest.TestApp( "config:tests.ini", relative_to=os.path.dirname(__file__)) self.app.RequestClass = PrefixedRequestClass self.app.authorization = ('Basic', ('token', '')) self.couchdb_server = self.app.app.registry.couchdb_server self.db = self.app.app.registry.db
# -*- coding: utf-8 -*- import unittest from pyramid import testing from openprocurement.api.auth import AuthenticationPolicy from pyramid.tests.test_authentication import TestBasicAuthAuthenticationPolicy from openprocurement.api.tests.base import test_tender_data, test_organization, BaseWebTest, BaseTenderWebTest test_tender_data_mode_test = test_tender_data.copy() test_tender_data_mode_test["mode"] = "test" class AuthTest(TestBasicAuthAuthenticationPolicy): def _makeOne(self, check): return AuthenticationPolicy('src/openprocurement/api/tests/auth.ini', 'SomeRealm') test_authenticated_userid_utf8 = None test_authenticated_userid_latin1 = None def test_unauthenticated_userid_bearer(self): request = testing.DummyRequest() request.headers['Authorization'] = 'Bearer chrisr' policy = self._makeOne(None) self.assertEqual(policy.unauthenticated_userid(request), 'chrisr') class AccreditationTenderTest(BaseWebTest): def test_create_tender_accreditation(self): self.app.authorization = ('Basic', ('broker1', '')) response = self.app.post_json('/tenders', {"data": test_tender_data}) self.assertEqual(response.status, '201 Created')
# -*- coding: utf-8 -*- import unittest from openprocurement.api.tests.base import test_tender_data, BaseTenderWebTest from iso8601 import parse_date from tzlocal import get_localzone tender_data = test_tender_data.copy() tender_data['auctionPeriod'] = test_tender_data["tenderPeriod"] tender_data['bids'] = [{ "id": "4879d3f8ee2443169b5fbbc9f89fa606", "status": "registration", "date": "2014-10-28T11:44:17.946", "tenderers": [test_tender_data["procuringEntity"]], "value": { "amount": 469, "currency": "UAH", "valueAddedTaxIncluded": True } }, { "id": "4879d3f8ee2443169b5fbbc9f89fa607", "status": "registration", "date": "2014-10-28T11:44:17.947", "tenderers": [test_tender_data["procuringEntity"]], "value": { "amount": 479, "currency": "UAH", "valueAddedTaxIncluded": True } }]
# -*- coding: utf-8 -*- import os import webtest from copy import deepcopy from datetime import datetime, timedelta from openprocurement.api.models import SANDBOX_MODE from openprocurement.api.utils import apply_data_patch from openprocurement.api.tests.base import test_tender_data as base_data from openprocurement.api.tests.base import BaseTenderWebTest as BaseBaseTenderWebTest from openprocurement.api.tests.base import test_organization now = datetime.now() test_tender_data = base_data.copy() del test_tender_data['enquiryPeriod'] del test_tender_data['tenderPeriod'] del test_tender_data['minimalStep'] test_tender_data['procurementMethodType'] = "reporting" test_tender_data['procuringEntity']["kind"] = "general" if SANDBOX_MODE: test_tender_data['procurementMethodDetails'] = 'quick, accelerator=1440' test_tender_negotiation_data = deepcopy(test_tender_data) test_tender_negotiation_data['procurementMethodType'] = "negotiation" test_tender_negotiation_data['cause'] = "twiceUnsuccessful" test_tender_negotiation_data['causeDescription'] = "chupacabra" if SANDBOX_MODE: test_tender_negotiation_data[ 'procurementMethodDetails'] = 'quick, accelerator=1440' test_tender_negotiation_data_2items = deepcopy(test_tender_negotiation_data)
# -*- coding: utf-8 -*- import os import webtest from datetime import datetime, timedelta from openprocurement.api.models import get_now from openprocurement.api.tests.base import (test_tender_data as test_tender_data_api, now, test_features_tender_data, BaseTenderWebTest, PrefixedRequestClass) from openprocurement.api.tests.base import test_bids as base_test_bids test_tender_data = test_tender_ua_data = test_tender_data_api.copy() test_tender_data['procurementMethodType'] = "aboveThresholdUA" # test_tender_data["enquiryPeriod"] = {} del test_tender_data["enquiryPeriod"] test_tender_data["tenderPeriod"] = { "endDate": (now + timedelta(days=16)).isoformat() } test_tender_data["items"] = [{ "description": u"футляри до державних нагород", "description_en": u"Cases for state awards", "classification": { "scheme": u"CPV", "id": u"44617100-9", "description": u"Cartons" }, "additionalClassifications": [ { "scheme": u"ДКПП", "id": u"17.21.1",
# -*- coding: utf-8 -*- import os import webtest from datetime import datetime, timedelta from openprocurement.api.models import get_now from openprocurement.api.tests.base import (test_tender_data, now, test_features_tender_data, BaseTenderWebTest, PrefixedRequestClass) test_tender_ua_data = test_tender_data.copy() test_tender_ua_data['procurementMethodType'] = "aboveThresholdUA" # test_tender_ua_data["enquiryPeriod"] = {} del test_tender_ua_data["enquiryPeriod"] test_tender_ua_data["tenderPeriod"] = { "endDate": (now + timedelta(days=16)).isoformat() } # test_tender_ua_data["tenderPeriod"] = test_tender_ua_data["enquiryPeriod"].copy() test_features_tender_ua_data = test_features_tender_data.copy() test_features_tender_ua_data['procurementMethodType'] = "aboveThresholdUA" # test_features_tender_ua_data["enquiryPeriod"] = {} del test_features_tender_ua_data["enquiryPeriod"] test_features_tender_ua_data["tenderPeriod"] = { "endDate": (now + timedelta(days=16)).isoformat() } # test_features_tender_ua_data["tenderPeriod"] = test_features_tender_ua_data["enquiryPeriod"].copy()