예제 #1
0
    def test_migrate_one_pending_contract(self):
        auction = self.db.get(self.auction_id)
        del auction['awardPeriod']['endDate']
        award = {
            'id': uuid4().hex,
            "date": get_now().isoformat(),
            "bid_id": auction['bids'][1]['id'],
            'suppliers': auction['bids'][1]['tenderers'],
            'value': auction['bids'][1]['value'],
            "status": "active",
            "complaintPeriod": {
                "startDate": get_now().isoformat(),
            },
            "signingPeriod": {
                "startDate": get_now().isoformat(),
                "endDate": get_now().isoformat(),
            }
        }
        contract = {
            'id': uuid4().hex,
            'awardID': award['id'],
            'suppliers': award['suppliers'],
            'value': award['value'],
            'date': get_now().isoformat(),
            'status': 'pending',
            'items': auction['items'],
            'contractID': '{}-{}'.format(
                auction['auctionID'],
                len(auction.get('contracts', [])) + 1
            ),
            'signingPeriod': award['signingPeriod']
        }

        auction['awards'] = [award]
        auction['contracts'] = [contract]
        auction.update(auction)
        self.db.save(auction)
        migrate_data(self.app.app.registry, 3)

        auction = self.app.get('/auctions/{}'.format(self.auction_id)).json['data']
        self.assertEqual(auction['awards'][0]['status'], 'active')
        self.assertIn('endDate', auction['awardPeriod'])
        self.assertIn('endDate', auction['awards'][0]['complaintPeriod'])
        self.assertEqual(auction['status'], 'active.awarded')

        response = self.app.post('/auctions/{}/contracts/{}/documents'.format(
            self.auction_id, contract['id']), upload_files=[('file', 'name.doc', 'content')])
        self.assertEqual(response.status, '201 Created')
        self.assertEqual(response.content_type, 'application/json')

        response = self.app.patch_json('/auctions/{}/contracts/{}'.format(self.auction_id, auction['contracts'][0]['id']),
                                       {"data": {"status": "active"}})
        self.assertEqual(response.status, '200 OK')
        self.assertEqual(response.content_type, 'application/json')
        self.assertEqual(response.json['data']['status'], u'active')

        response = self.app.get('/auctions/{}'.format(self.auction_id))
        self.assertEqual(response.status, '200 OK')
        self.assertEqual(response.content_type, 'application/json')
        self.assertEqual(response.json['data']['status'], u'complete')
 def setUp(self):
     super(MigrateTestFrom1To2Bids, self).setUp()
     migrate_data(self.app.app.registry)
     set_db_schema_version(self.db, 0)
     auction = self.db.get(self.auction_id)
     auction['bids'][0]['value']['amount'] = auction['value']['amount']
     self.db.save(auction)
 def setUp(self):
     super(MigrateTestFrom1To2WithThreeBids, self).setUp()
     migrate_data(self.app.app.registry)
     set_db_schema_version(self.db, 0)
     auction = self.db.get(self.auction_id)
     auction['bids'].append(deepcopy(auction['bids'][0]))
     auction['bids'][-1]['id'] = uuid4().hex
     self.db.save(auction)
 def setUp(self):
     super(MigrateTest, self).setUp()
     migrate_data(self.app.app.registry)
 def setUp(self):
     super(MigrateTestFrom2To3WithTwoBids, self).setUp()
     migrate_data(self.app.app.registry)
     set_db_schema_version(self.db, 1)
 def migrate_data(registry, destination=None):
     return migrate_data(registry, destination)
 def test_migrate(self):
     self.assertEqual(get_db_schema_version(self.db), SCHEMA_VERSION)
     migrate_data(self.app.app.registry, 1)
     self.assertEqual(get_db_schema_version(self.db), SCHEMA_VERSION)