def test_sync_load(self): docs = self.docs db = EssentialDB(filepath=SYNC_DB_FILE).get_collection() db.insert_many(docs) db.sync() del (db) db2 = EssentialDB(filepath=SYNC_DB_FILE).get_collection() find = db2.find_one({"_id": docs[5]["_id"]}) self.assertEqual(find["_id"], docs[5]["_id"])
class EssentialTropicsStorage: def __init__(self, filepath): self.db = EssentialDB(filepath=filepath) self.db.sync() def profile(self, id=None, login=None): if id: return self._profiles().get(id) if login: return self._profiles().find_one({'login': login}) def profiles(self): return self._profiles().find() def store_profile(self, profile): with self._profiles() as profiles: return profiles.insert_one(profile) def store_profiles(self, profiles): with self._profiles() as profile_store: return profile_store.insert_many(profiles) def remove_profile(self, profile_id): with self._profiles() as profiles: return profiles.remove({'_id': profile_id}) def credential(self, id=None, login=None): if id: return self._credentials().get(id) elif login: return self._credentials().find_one({'login': login}) return None def store_credential(self, credential): with self._credentials() as credential_collection: credential_collection.insert_one(credential) def remove_credential(self, id=None, login=None): with self._credentials() as credential_collection: if id: return credential_collection.remove({'_id': id}) elif login: return credential_collection.remove({'login': login}) return None def session(self, token=None, login=None, profile_id=None): if token: return self._sessions().get(token) elif profile_id: return self._sessions().find_one({'profile_id': profile_id}) else: return self._sessions().find_one({'login': login}) def store_session(self, session): with self._sessions() as credential_collection: return credential_collection.insert_one(session) def remove_session(self, token): with self._sessions() as session_collection: return session_collection.remove({'_id': token}) def _profiles(self): return self.db.get_collection("profiles") def _credentials(self): return self.db.get_collection("credentials") def _sessions(self): return self.db.get_collection("sessions") def _reset_all(self, seriously): if seriously: with self._profiles() as profiles: profiles.remove() with self._credentials() as credentials: credentials.remove() return True return False