def test_threading(sdk): """Regression test for bug where the paththread local was only created on the thread where the constructor of the mock sdk was called.""" err = [] thread = threading.Thread(target=thread_worker, args=(err, sdk)) thread.start() with create_dummy_entrypoint(sdk): pass thread.join() if err: raise RuntimeError('Exception on ' + thread.name + ': ' + err[0]) assert len(get_nsdk(sdk).finished_paths) == 2
def test_trace_sql_database_request(sdk): with create_dummy_entrypoint(sdk): dbi = sdk.create_database_info( 'dbn', 'dbv', onesdk.Channel(onesdk.ChannelType.OTHER, 'ce')) hdbi = dbi.handle with dbi: tracer = sdk.trace_sql_database_request(dbi, DUMMY_SQL) with tracer: tracer.set_round_trip_count(1) tracer.set_rows_returned(42) nsdk = get_nsdk(sdk) assert len(nsdk.finished_paths) == 1 _, root = nsdk.finished_paths[0].children[0] # Strip dummy entrypoint assert isinstance(root, sdkmockiface.DbRequestHandle) assert root.vals[0] is hdbi assert root.vals[1] == DUMMY_SQL assert root.round_trip_count == 1 assert root.returned_row_count == 42
def test_trace_out_remote_call(sdk): print('SDK:', sdk) with create_dummy_entrypoint(sdk): print('SDK2:', sdk) tracer = sdk.trace_outgoing_remote_call('a', 'b', 'c', onesdk.Channel( onesdk.ChannelType.OTHER, 'e'), protocol_name='foo') tracer.start() tracer.end() nsdk = get_nsdk(sdk) assert len(nsdk.finished_paths) == 1 _, root = nsdk.finished_paths[0].children[0] assert isinstance(root, sdkmockiface.OutRemoteCallHandle) assert root.vals == ('a', 'b', 'c', onesdk.ChannelType.OTHER, 'e') assert root.protocol_name == 'foo'
def thread_worker(err, sdk): try: with create_dummy_entrypoint(sdk): pass except Exception: #pylint:disable=broad-except err.append(traceback.format_exc())