コード例 #1
0
def test_save():
    alias = make_alias(False)
    store = AliasStore()

    store.save(alias)

    stored_alias = get_session().query(Alias).filter(
        Alias.id == alias.id).first()
    assert stored_alias == alias
コード例 #2
0
def make_alias(store: bool, **params) -> Alias:
    params.setdefault('value', str(uuid.uuid4()))
    params.setdefault('alias_generator', AliasGeneratorType.UUID)
    params.setdefault('public_alias', f'public_{params["value"]}')
    alias = Alias(**params)
    if store:
        session = get_session()
        session.add(alias)
        session.commit()
    return alias
コード例 #3
0
def make_alias(store: bool) -> Alias:
    value = str(uuid.uuid4())
    alias = Alias(
        value=value,
        alias_generator=AliasGeneratorType.UUID,
        public_alias=f'public_{value}',
    )
    session = get_session()
    session.add(alias)
    session.commit()

    return alias
コード例 #4
0
def test_cleanup():
    session = get_session()
    session.query(Alias).delete()
    session.commit()

    persistent_store = AliasStore()
    alias1 = make_alias(False)
    persistent_store.save(alias1)

    volatile_store = AliasStore(60)
    alias2 = make_alias(False)
    volatile_store.save(alias2)

    alias3 = make_alias(False)
    AliasStore(-1).save(alias3)

    assert AliasStore.cleanup() == 1
    persistent_store.get_by_value(alias1.value) is not None
    volatile_store.get_by_value(alias2.value) is not None
    volatile_store.get_by_value(alias3.value) is None
コード例 #5
0
ファイル: store.py プロジェクト: aslepakurov/vgs-satellite
 def cleanup() -> int:
     session = get_session()
     result = session.query(Alias).filter(
         Alias.expires_at < datetime.utcnow()).delete()
     session.commit()
     return result
コード例 #6
0
ファイル: store.py プロジェクト: aslepakurov/vgs-satellite
 def save(self, alias: Alias):
     session = get_session()
     if not self.is_persistent:
         alias.expires_at = datetime.utcnow() + timedelta(seconds=self._ttl)
     session.add(alias)
     session.commit()
コード例 #7
0
ファイル: store.py プロジェクト: aslepakurov/vgs-satellite
 def _query(self) -> Query:
     query = get_session().query(Alias)
     if self.is_persistent:
         return query.filter(Alias.expires_at.is_(None))
     return query.filter(Alias.expires_at >= datetime.utcnow())
コード例 #8
0
class MetaWithSession(type):
    sqlalchemy_session = property(lambda cls: get_session())
コード例 #9
0
 def setUp(self):
     super().setUp()
     session = get_session()
     session.query(Route).delete()
     session.commit()