def test_db_upgrade(self, tempdir): user = "******" device_id = "DEVICE_ID" user2 = "alice" device_id2 = "ALICE_ID" store = MatrixStore(user, device_id, tempdir, database_name="test.db") account = OlmAccount() session = OutboundSession(account, BOB_CURVE, BOB_ONETIME) out_group = OutboundGroupSession() in_group = InboundGroupSession(out_group.session_key, account.identity_keys["ed25519"], account.identity_keys["curve25519"], TEST_ROOM, TEST_FORWARDING_CHAIN) devices = self.example_devices assert len(devices) == 11 store.save_account(account) store.save_session(BOB_CURVE, session) store.save_inbound_group_session(in_group) store.save_device_keys(devices) store2 = MatrixStore(user2, device_id2, tempdir, database_name="test.db") account2 = OlmAccount() store2.save_account(account2) del store store = MatrixStore(user, device_id, tempdir, database_name="test.db") loaded_account = store.load_account() assert account.identity_keys == loaded_account.identity_keys session_store = store.load_sessions() loaded_session = session_store.get(BOB_CURVE) session_store = store.load_inbound_group_sessions() assert loaded_session assert session.id == loaded_session.id loaded_session = session_store.get(TEST_ROOM, account.identity_keys["curve25519"], in_group.id) device_store = store.load_device_keys() # pdb.set_trace() assert loaded_session assert in_group.id == loaded_session.id assert (sorted( loaded_session.forwarding_chain) == sorted(TEST_FORWARDING_CHAIN)) bob_device = device_store[BOB_ID][BOB_DEVICE] assert bob_device assert bob_device.user_id == BOB_ID assert bob_device.id == BOB_DEVICE assert bob_device.ed25519 == BOB_ONETIME assert bob_device.curve25519 == BOB_CURVE assert not bob_device.deleted assert len(device_store.users) == 11
def store(tempdir): store = MatrixStore("ephemeral", "DEVICEID", tempdir) account = OlmAccount() store.save_account(account) return store