def testGetAllHistories(): seed = b'\x92[\xcb\xf4\xee5+\xcf\xd4b*%/\xabw8\xd4d\xa2\xf8\xad\xa7U\x19,\xcfS\x12\xa6l\xba"' dbing.setupDbEnv(DB_DIR_PATH) data = { "id": DID, "signer": 0, "signers": [ "NOf6ZghvGNbFc_wr3CC0tKZHz1qWAR4lD5aM-i0zSjw=", "NOf6ZghvGNbFc_wr3CC0tKZHz1qWAR4lD5aM-i0zSjw=" ] } sigs = [help.signResource(json.dumps(data).encode(), SK)] history1 = dbing.saveHistory(DID, data, sigs) vk, sk, did, body = help.genDidHistory(seed, signer=0, numSigners=2) data = json.loads(body) sigs = [help.signResource(json.dumps(data).encode(), sk)] history2 = dbing.saveHistory(did, data, sigs) exp_data = {'data': [history1, history2]} actual_data = dbing.getAllHistories() assert actual_data == exp_data
def testGetAllOtpBlobs(): seed = b'\x92[\xcb\xf4\xee5+\xcf\xd4b*%/\xabw8\xd4d\xa2\xf8\xad\xa7U\x19,\xcfS\x12\xa6l\xba"' dbing.setupDbEnv(DB_DIR_PATH) data = { "id": DID, "blob": "aj;skldfjaoisfjweoijfoiajfo;iasjvjncowrnoiarejnfoj;csacivnfgo;afiewvajdfvo;hnafddjio;ahjfgoia;ehroi;hs" } sigs = [help.signResource(json.dumps(data).encode(), SK)] otpBlob1 = dbing.saveOtpBlob(DID, data, sigs) vk, sk, did, body = help.genDidHistory(seed, signer=0, numSigners=2) data = { "id": did, "blob": "aj;skldfjaoisfjweoijfoiajfo;iasjvjncowrnoiarejnfoj;csacivnfgo;afiewvajdfvo;hnafddjio;ahjfgoia;ehroi;hs" } sigs = [help.signResource(json.dumps(data).encode(), sk)] otpBlob2 = dbing.saveOtpBlob(did, data, sigs) exp_data = {'data': [otpBlob1, otpBlob2]} actual_data = dbing.getAllOtpBlobs() assert actual_data == exp_data
def testOtpBlobCount(): dbing.setupDbEnv(DB_DIR_PATH) dbOtpBlob = dbing.dideryDB.open_db(dbing.DB_OTP_BLOB_NAME) with dbing.dideryDB.begin(db=dbOtpBlob, write=True) as txn: data = b'{"id": "did:dad:Y2CR8pS8z2YvJQN-FH_wprtF1TyA0jTlXC3MrMmaNyY=", "blob": "aj;skldfjaoisfjweoijfoiajfo;iasjvjncowrnoiarejnfoj;csacivnfgo;afiewvajdfvo;hnafddjio;ahjfgoia;ehroi;hs"}' id = b'did:dad:Y2CR8pS8z2YvJQN-FH_wprtF1TyA0jTlXC3MrMmaNyY=' txn.put(id, data) count = dbing.otpBlobCount() assert count == 1
def testHistoryCount(): dbing.setupDbEnv(DB_DIR_PATH) dbHistory = dbing.dideryDB.open_db(dbing.DB_KEY_HISTORY_NAME) with dbing.dideryDB.begin(db=dbHistory, write=True) as txn: data = b'{"id": "did:dad:-OVHx0sv_jJePGB9LBZaWDlrLkxMNlOeHPdHysViK9k=", "signer": 0, "signers": ["-OVHx0sv_jJePGB9LBZaWDlrLkxMNlOeHPdHysViK9k=", "5Bp8Z8_UOWZBtVxffoTVF3QYkE-W-CpKa6VnN27CcN8="]}' id = b'did:dad:-OVHx0sv_jJePGB9LBZaWDlrLkxMNlOeHPdHysViK9k=' txn.put(id, data) count = dbing.historyCount() assert count == 1
def setupTearDown(self): """ Pytest runs this function before every test when autouse=True Without autouse=True you would have to add a setupTeardown parameter to each test function """ # setup dbPath = h.setupTmpBaseDir() db.setupDbEnv(dbPath, mode="race") yield dbPath # this allows the test to run # teardown h.cleanupTmpBaseDir(dbPath)
def testGetOtpBlob(): dbing.setupDbEnv(DB_DIR_PATH) data = { "id": DID, "blob": "aj;skldfjaoisfjweoijfoiajfo;iasjvjncowrnoiarejnfoj;csacivnfgo;afiewvajdfvo;hnafddjio;ahjfgoia;ehroi;hs" } sigs = [help.signResource(json.dumps(data).encode(), SK)] exp_data = dbing.saveOtpBlob(DID, data, sigs) actual_data = dbing.getOtpBlob(DID) assert actual_data == exp_data
def testSaveOtpBlob(): dbing.setupDbEnv(DB_DIR_PATH) data = { "id": DID, "blob": "aj;skldfjaoisfjweoijfoiajfo;iasjvjncowrnoiarejnfoj;csacivnfgo;afiewvajdfvo;hnafddjio;ahjfgoia;ehroi;hs" } sigs = [help.signResource(json.dumps(data).encode(), SK)] exp_data = dbing.saveOtpBlob(DID, data, sigs) dbOtpBlob = dbing.dideryDB.open_db(dbing.DB_OTP_BLOB_NAME) with dbing.dideryDB.begin(db=dbOtpBlob, write=True) as txn: actual_data = txn.get(DID.encode()) assert actual_data == json.dumps(exp_data).encode()
def dideryServerOpen(self): """ Setup and open a rest server Ioinit attributes valet is Valet instance (wsgi server) port is server port Context: enter Example: do didery server open at enter """ port = int(self.port.value) dbing.setupDbEnv(self.db.value, self.port.value, mode=self.mode.value) app = falcon.API(middleware=[routing.CORSMiddleware()]) routing.loadEndPoints(app, store=self.store, mode=self.mode.value) self.valet.value = Valet( port=port, bufsize=131072, wlog=None, store=self.store, app=app, timeout=0.5, ) console.terse("IP Address {}\n".format(self.valet.value.servant.ha)) result = self.valet.value.servant.reopen() if not result: console.terse("Error opening server '{0}' at '{1}'\n".format( self.valet.name, self.valet.value.servant.ha)) return console.concise("Opened server '{0}' at '{1}'\n".format( self.valet.name, self.valet.value.servant.ha, ))
def testGetHistory(): dbing.setupDbEnv(DB_DIR_PATH) data = { "id": DID, "signer": 0, "signers": [ "NOf6ZghvGNbFc_wr3CC0tKZHz1qWAR4lD5aM-i0zSjw=", "NOf6ZghvGNbFc_wr3CC0tKZHz1qWAR4lD5aM-i0zSjw=" ] } sigs = [help.signResource(json.dumps(data).encode(), SK)] exp_data = dbing.saveHistory(DID, data, sigs) actual_data = dbing.getHistory(DID) assert actual_data == exp_data
def testSaveHistory(): dbing.setupDbEnv(DB_DIR_PATH) data = { "id": DID, "signer": 0, "signers": [ "NOf6ZghvGNbFc_wr3CC0tKZHz1qWAR4lD5aM-i0zSjw=", "NOf6ZghvGNbFc_wr3CC0tKZHz1qWAR4lD5aM-i0zSjw=" ] } sigs = [help.signResource(json.dumps(data).encode(), SK)] exp_data = dbing.saveHistory(DID, data, sigs) dbHistory = dbing.dideryDB.open_db(dbing.DB_KEY_HISTORY_NAME) with dbing.dideryDB.begin(db=dbHistory, write=True) as txn: actual_data = txn.get(DID.encode()) assert actual_data == json.dumps(exp_data).encode()
def methodEventsDB(): dbing.setupDbEnv(DB_DIR_PATH, mode="method") return dbing.eventsDB
def testGetNonExistentHistory(): dbing.setupDbEnv(DB_DIR_PATH) actual_data = dbing.getHistory(DID) assert actual_data is None
def promiscuousEventsDB(): dbing.setupDbEnv(DB_DIR_PATH, mode="promiscuous") return dbing.eventsDB
def raceEventsDB(): dbing.setupDbEnv(DB_DIR_PATH, mode="race") return dbing.eventsDB
def methodHistoryDB(): dbing.setupDbEnv(DB_DIR_PATH, mode="method") return dbing.historyDB
def eventsDB(): dbing.setupDbEnv(DB_DIR_PATH) return dbing.eventsDB
def promiscuousHistoryDB(): dbing.setupDbEnv(DB_DIR_PATH, mode="promiscuous") return dbing.historyDB
def raceHistoryDB(): dbing.setupDbEnv(DB_DIR_PATH, mode="race") return dbing.historyDB
def otpDB(): dbing.setupDbEnv(DB_DIR_PATH) return dbing.otpDB
def historyDB(): dbing.setupDbEnv(DB_DIR_PATH) return dbing.historyDB
def testSetupDbEnvWithPath(): env = dbing.setupDbEnv(DB_DIR_PATH) assert env.path() == DB_DIR_PATH assert dbing.gDbDirPath == DB_DIR_PATH assert dbing.dideryDB is env
def testEmptyOtpCount(): dbing.setupDbEnv(DB_DIR_PATH) count = dbing.otpBlobCount() assert count == 0
def testGetNonExistentOtpBlob(): dbing.setupDbEnv(DB_DIR_PATH) actual_data = dbing.getOtpBlob(DID) assert actual_data is None
def testGetAllOtpBlobsOnEmptyDB(): dbing.setupDbEnv(DB_DIR_PATH) actual_data = dbing.getAllOtpBlobs() assert actual_data == {'data': []}
def testEmptyHistoryCount(): dbing.setupDbEnv(DB_DIR_PATH) count = dbing.historyCount() assert count == 0