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"])
Esempio n. 2
0
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