コード例 #1
0
 def test_parse_hash(self):
     _hash = ""
     self.assertEqual("", parse_hash(_hash))
     _hash = "2-909f500147c5c6d6ed16357fcee10f8b"
     self.assertEqual("909f500147c5c6d6ed16357fcee10f8b", parse_hash(_hash))
     _hash = "909f500147c5c6d6ed16357fcee10f8b"
     self.assertEqual("", parse_hash(_hash))
コード例 #2
0
    def test_get_tender_versioned(self):
        response = self.app.get('/tenders')
        self.assertEqual(response.status, '200 OK')
        self.assertEqual(len(response.json['data']), 0)

        response = self.app.post_json('/tenders', {'data': test_tender_data})
        self.assertEqual(response.status, '201 Created')
        tender = response.json['data']
        self.tender_id = tender['id']
        self._update_doc()
        doc = test_data_with_revisions.copy()
        revisions = doc.pop('revisions')
        for i, rev in list(enumerate(revisions))[1:]:
            path = '/tenders/{}/historical'.format(self.tender_id)
            response = self.app.get(path, headers={VERSION: str(i)})
            tender = response.json['data']
            headers = response.headers
            self.assertEqual(headers[HASH], parse_hash(rev['rev']))
            self.assertEqual(headers[VERSION], str(i))
            self.assertEqual(headers[PHASH],
                             parse_hash(revisions[i - 1].get('rev', '')))
            for ch in [r for r in rev['changes']]:
                val = ch['value'] if ch['op'] != 'remove' else 'missing'
                if not all(p for p in ['next_check', 'shouldStartAfter']
                           if ch['path'] in p):
                    self.assertEqual(
                        resolve_pointer(tender, ch['path'], 'missing'), val)
                if rev['author'] != 'chronograph':
                    if any('bids' in c['path'] for c in rev['changes']):
                        self.assertNotEqual(tender['dateModified'],
                                            rev['date'])
コード例 #3
0
 def test_parse_hash(self):
     _hash = ''
     self.assertEqual('', parse_hash(_hash))
     _hash = '2-909f500147c5c6d6ed16357fcee10f8b'
     self.assertEqual('909f500147c5c6d6ed16357fcee10f8b', parse_hash(_hash))
     _hash = '909f500147c5c6d6ed16357fcee10f8b'
     self.assertEqual('', parse_hash(_hash))
コード例 #4
0
ファイル: tests.py プロジェクト: lttga/op2
    def test_get_tender_versioned(self):
        response = self.app.get("/tenders")
        self.assertEqual(response.status, "200 OK")
        self.assertEqual(len(response.json["data"]), 0)

        response = self.app.post_json("/tenders", {"data": test_tender_data})
        self.assertEqual(response.status, "201 Created")
        tender = response.json["data"]
        self.tender_id = tender["id"]
        self._update_doc()
        doc = test_data_with_revisions.copy()
        revisions = doc.pop("revisions")
        for i, rev in list(enumerate(revisions))[1:]:
            path = "/tenders/{}/historical".format(self.tender_id)
            response = self.app.get(path, headers={VERSION: str(i)})
            tender = response.json["data"]
            headers = response.headers
            self.assertEqual(headers[HASH], parse_hash(rev["rev"]))
            self.assertEqual(headers[VERSION], str(i))
            self.assertEqual(headers[PHASH], parse_hash(revisions[i - 1].get("rev", "")))
            for ch in [r for r in rev["changes"]]:
                val = ch["value"] if ch["op"] != "remove" else "missing"
                if not all(p for p in ["next_check", "shouldStartAfter"] if ch["path"] in p):
                    self.assertEqual(resolve_pointer(tender, ch["path"], "missing"), val)
                if rev["author"] != "chronograph":
                    if any("bids" in c["path"] for c in rev["changes"]):
                        self.assertNotEqual(tender["dateModified"], rev["date"])
コード例 #5
0
 def test_apply_patch(self):
     doc = deepcopy(mock_doc)
     revisions = doc.pop("revisions")
     for version, rev in enumerate(revisions[1:], 1):
         response = self.app.get("/mock/{}/historical".format(mock_doc.id), headers={"X-Revision-N": str(version)})
         self.assertEqual(response.status, "200 OK")
         self.assertEqual(response.headers.get(HASH), parse_hash(rev.get("rev")))
         self.assertEqual(response.headers.get(VERSION), str(version))
         data = response.json
         data.pop("Base")
         for ch in rev["changes"]:
             val = ch["value"] if ch["op"] != "remove" else "missing"
             self.assertEqual(resolve_pointer(data, ch["path"], "missing"), val)
コード例 #6
0
 def test_apply_patch(self):
     doc = deepcopy(mock_doc)
     revisions = doc.pop('revisions')
     for version, rev in enumerate(revisions[1:], 1):
         response = self.app.get('/mock/{}/historical'.format(mock_doc.id),
                                 headers={'X-Revision-N': str(version)})
         self.assertEqual(response.status, '200 OK')
         self.assertEqual(response.headers.get(HASH),
                          parse_hash(rev.get('rev')))
         self.assertEqual(response.headers.get(VERSION), str(version))
         data = response.json
         data.pop('Base')
         for ch in rev['changes']:
             val = ch['value'] if ch['op'] != 'remove' else 'missing'
             self.assertEqual(resolve_pointer(data, ch['path'], 'missing'),
                              val)