提交 4aa29968 编写于 作者: P peng.xu

update for TESTING changes

上级 8ad5d6c2
import logging
import pytest
import grpc
from mishards import settings, db, create_app
logger = logging.getLogger(__name__)
......@@ -14,3 +15,12 @@ def app(request):
yield app
db.drop_all()
@pytest.fixture
def started_app(app):
app.on_pre_run()
app.start(app.port)
yield app
app.stop()
......@@ -24,7 +24,7 @@ def create_app(testing_config=None):
from tracing.factory import TracerFactory
from mishards.grpc_utils import GrpcSpanDecorator
tracer = TracerFactory.new_tracer(settings.TRACING_TYPE, settings.TracingConfig,
tracer = TracerFactory.new_tracer(config.TRACING_TYPE, settings.TracingConfig,
span_decorator=GrpcSpanDecorator())
grpc_server.init_app(conn_mgr=connect_mgr, tracer=tracer, discover=discover)
......
......@@ -18,7 +18,7 @@ class Connection:
self.conn = Milvus()
self.error_handlers = [] if not error_handlers else error_handlers
self.on_retry_func = kwargs.get('on_retry_func', None)
self._connect()
# self._connect()
def __str__(self):
return 'Connection:name=\"{}\";uri=\"{}\"'.format(self.name, self.uri)
......
......@@ -57,7 +57,6 @@ class TestGrpcUtils:
span = TestSpan(context=None, tracer=TestTracer())
span_deco = GrpcSpanDecorator()
span_deco(span, rpc_info)
logger.error(span.logs)
assert len(span.logs) == 1
assert len(span.tags) == 1
......@@ -66,7 +65,6 @@ class TestGrpcUtils:
span = TestSpan(context=None, tracer=TestTracer())
span_deco = GrpcSpanDecorator()
span_deco(span, rpc_info)
logger.error(span.logs)
assert len(span.logs) == 0
assert len(span.tags) == 0
......
......@@ -6,8 +6,7 @@ from mishards import (settings, create_app)
def main():
server = create_app(
settings.TestingConfig if settings.TESTING else settings.DefaultConfig)
server = create_app(settings.DefaultConfig)
server.run(port=settings.SERVER_PORT)
return 0
......
......@@ -39,7 +39,7 @@ class Server:
self.register_pre_run_handler(self.pre_run_handler)
def pre_run_handler(self):
woserver = settings.WOSERVER if not settings.TESTING else settings.TESTING_WOSERVER
woserver = settings.WOSERVER
url = urlparse(woserver)
ip = socket.gethostbyname(url.hostname)
socket.inet_pton(socket.AF_INET, ip)
......
......@@ -43,10 +43,7 @@ elif SD_PROVIDER == 'Static':
SD_PROVIDER_SETTINGS = StaticProviderSettings(
hosts=env.list('SD_STATIC_HOSTS', []))
TESTING = env.bool('TESTING', False)
TESTING_WOSERVER = env.str('TESTING_WOSERVER', 'tcp://127.0.0.1:19530')
TRACING_TYPE = env.str('TRACING_TYPE', '')
# TESTING_WOSERVER = env.str('TESTING_WOSERVER', 'tcp://127.0.0.1:19530')
class TracingConfig:
......@@ -64,19 +61,24 @@ class TracingConfig:
},
'logging': env.bool('TRACING_LOGGING', True)
}
DEFAULT_TRACING_CONFIG = {
'sampler': {
'type': env.str('TRACING_SAMPLER_TYPE', 'const'),
'param': env.str('TRACING_SAMPLER_PARAM', "0"),
}
}
class DefaultConfig:
SQLALCHEMY_DATABASE_URI = env.str('SQLALCHEMY_DATABASE_URI')
SQL_ECHO = env.bool('SQL_ECHO', False)
TRACING_TYPE = env.str('TRACING_TYPE', '')
TESTING = env.bool('TESTING', False)
if TESTING:
class TestingConfig(DefaultConfig):
SQLALCHEMY_DATABASE_URI = env.str('SQLALCHEMY_DATABASE_TEST_URI')
SQL_ECHO = env.bool('SQL_TEST_ECHO', False)
class TestingConfig(DefaultConfig):
SQLALCHEMY_DATABASE_URI = env.str('SQLALCHEMY_DATABASE_TEST_URI')
SQL_ECHO = env.bool('SQL_TEST_ECHO', False)
TRACING_TYPE = env.str('TRACING_TEST_TYPE', '')
if __name__ == '__main__':
......
import logging
import pytest
import mock
from milvus import Milvus
from mishards.connections import (ConnectionMgr, Connection)
from mishards import exceptions
......@@ -27,6 +29,12 @@ class TestConnection:
mgr.register('WOSERVER', 'xxxx')
assert len(mgr.conn_names) == 0
assert not mgr.conn('XXXX', None)
with pytest.raises(exceptions.ConnectionNotFoundError):
mgr.conn('XXXX', None, True)
mgr.conn('WOSERVER', None)
def test_connection(self):
class Conn:
def __init__(self, state):
......@@ -37,6 +45,7 @@ class TestConnection:
def connected(self):
return self.state
FAIL_CONN = Conn(False)
PASS_CONN = Conn(True)
......@@ -58,7 +67,9 @@ class TestConnection:
max_retry = 3
RetryObj = Retry()
c = Connection('client', uri='',
c = Connection('client',
uri='xx',
max_retry=max_retry,
on_retry_func=RetryObj)
c.conn = FAIL_CONN
......@@ -75,3 +86,16 @@ class TestConnection:
this_connect()
assert ff.executed
assert RetryObj.times == 0
this_connect = c.connect(func=None)
with pytest.raises(TypeError):
this_connect()
errors = []
def error_handler(err):
errors.append(err)
this_connect = c.connect(func=None, exception_handler=error_handler)
this_connect()
assert len(errors) == 1
......@@ -33,3 +33,4 @@ SQLAlchemy==1.3.5
urllib3==1.25.3
jaeger-client>=3.4.0
grpcio-opentracing>=1.0
mock==2.0.0
......@@ -12,13 +12,17 @@ logger = logging.getLogger(__name__)
class TracerFactory:
@classmethod
def new_tracer(cls, tracer_type, tracer_config, span_decorator=None, **kwargs):
config = tracer_config.TRACING_CONFIG
service_name = tracer_config.TRACING_SERVICE_NAME
validate=tracer_config.TRACING_VALIDATE
if not tracer_type:
return Tracer()
tracer_type = 'jaeger'
config = tracer_config.DEFAULT_TRACING_CONFIG
if tracer_type.lower() == 'jaeger':
config = Config(config=tracer_config.TRACING_CONFIG,
service_name=tracer_config.TRACING_SERVICE_NAME,
validate=tracer_config.TRACING_VALIDATE
config = Config(config=config,
service_name=service_name,
validate=validate
)
tracer = config.initialize_tracer()
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册