Example #1
0
def test_get_filter_id() -> None:
    from superset.key_value.utils import get_filter

    assert get_filter(resource=RESOURCE, key=ID_KEY) == {
        "resource": RESOURCE,
        "id": ID_KEY,
    }
Example #2
0
 def upsert(self) -> Optional[Key]:
     filter_ = get_filter(self.resource, self.key)
     entry: KeyValueEntry = (
         db.session.query(KeyValueEntry)
         .filter_by(**filter_)
         .autoflush(False)
         .first()
     )
     if entry:
         entry.value = pickle.dumps(self.value)
         entry.expires_on = self.expires_on
         entry.changed_on = datetime.now()
         entry.changed_by_fk = (
             None if self.actor is None or self.actor.is_anonymous else self.actor.id
         )
         db.session.merge(entry)
         db.session.commit()
         return Key(entry.id, entry.uuid)
     return CreateKeyValueCommand(
         resource=self.resource,
         value=self.value,
         actor=self.actor,
         key=self.key,
         expires_on=self.expires_on,
     ).run()
Example #3
0
 def get(self) -> Optional[Any]:
     filter_ = get_filter(self.resource, self.key, self.key_type)
     entry = (db.session.query(KeyValueEntry).filter_by(
         **filter_).autoflush(False).first())
     if entry and (entry.expires_on is None
                   or entry.expires_on > datetime.now()):
         return pickle.loads(entry.value)
     return None
 def delete(self) -> bool:
     filter_ = get_filter(self.resource, self.key, self.key_type)
     entry = (db.session.query(KeyValueEntry).filter_by(
         **filter_).autoflush(False).first())
     if entry:
         db.session.delete(entry)
         db.session.commit()
         return True
     return False
Example #5
0
def test_get_filter_id(app_context: AppContext, ) -> None:
    from superset.key_value.utils import get_filter

    assert get_filter(
        resource=RESOURCE,
        key=ID_KEY,
        key_type="id",
    ) == {
        "resource": RESOURCE,
        "id": int(ID_KEY),
    }
    def update(self) -> Optional[str]:
        filter_ = get_filter(self.resource, self.key, self.key_type)
        entry: KeyValueEntry = (db.session.query(KeyValueEntry).filter_by(
            **filter_).autoflush(False).first())
        if entry:
            entry.value = pickle.dumps(self.value)
            entry.expires_on = self.expires_on
            entry.changed_on = datetime.now()
            entry.changed_by_fk = (None if self.actor is None or
                                   self.actor.is_anonymous else self.actor.id)
            db.session.merge(entry)
            db.session.commit()
            return extract_key(entry, self.key_type)

        return None
Example #7
0
    def update(self) -> Optional[Key]:
        filter_ = get_filter(self.resource, self.key)
        entry: KeyValueEntry = (
            db.session.query(KeyValueEntry)
            .filter_by(**filter_)
            .autoflush(False)
            .first()
        )
        if entry:
            entry.value = pickle.dumps(self.value)
            entry.expires_on = self.expires_on
            entry.changed_on = datetime.now()
            entry.changed_by_fk = get_user_id()
            db.session.merge(entry)
            db.session.commit()
            return Key(id=entry.id, uuid=entry.uuid)

        return None
Example #8
0
 def upsert(self) -> Key:
     filter_ = get_filter(self.resource, self.key)
     entry: KeyValueEntry = (
         db.session.query(KeyValueEntry)
         .filter_by(**filter_)
         .autoflush(False)
         .first()
     )
     if entry:
         entry.value = pickle.dumps(self.value)
         entry.expires_on = self.expires_on
         entry.changed_on = datetime.now()
         entry.changed_by_fk = get_user_id()
         db.session.merge(entry)
         db.session.commit()
         return Key(entry.id, entry.uuid)
     return CreateKeyValueCommand(
         resource=self.resource,
         value=self.value,
         key=self.key,
         expires_on=self.expires_on,
     ).run()