Source code for oriole_service.test

#
#                __   _,--="=--,_   __
#               /  \."    .-.    "./  \
#              /  ,/  _   : :   _  \/` \
#              \  `| /o\  :_:  /o\ |\__/
#               `-'| :="~` _ `~"=: |
#                  \`     (_)     `/
#           .-"-.   \      |      /   .-"-.
#    .-----{     }--|  /,.-'-.,\  |--{     }-----.
#     )    (_)_)_)  \_/`~-===-~`\_/  (_(_(_)    (
#    (                                           )
#     )                Oriole-TEST              (
#    (                  Eric.Zhou                )
#    '-------------------------------------------'
#

from mock import *
from nameko.testing.services import worker_factory
from pytest import *

from dao import *
from oriole.fake import fake_db, fake_mongo, fake_redis


[docs]@fixture def app(monkeypatch): class _App: def __init__(self, fake): self.fake = fake.setattr self._db = fake_db(Base) self.dbs = [self._db] for old, new in zip(( "oriole_service.app.App.rs", "oriole_service.app.App.db", ), (fake_redis(), self._db.get())): self.fake(old, new) def close(self): for db in self.dbs: db.close() def create(self, name): return worker_factory(name) def add_db(self, service, name='db', uri='test_database', base=Base): db = fake_db(base, uri) self.dbs.append(db) self.fake(service, name, db.get()) def add_mongo(self, service, name='db_log'): self.fake(service, name, fake_mongo()) # Supply database and redis to test. _app = _App(monkeypatch) # Only supply app to create service. # Don't create service by class directly, it's wrong. yield _app _app.close()