Esempio n. 1
0
def test_compute_noop_node_core():
    pipeline = silencing_pipeline(solids=[noop])

    environment = EnvironmentConfig()

    plan = create_execution_plan_core(
        ExecutionPlanInfo(create_test_runtime_execution_context(), pipeline,
                          environment))

    assert len(plan.steps) == 1

    outputs = list(
        execute_step(plan.steps[0], create_test_runtime_execution_context(),
                     {}))

    assert outputs[0].success_data.value == 'foo'
Esempio n. 2
0
def create_sql_alchemy_context_from_sa_resource(sa_resource, *args, **kwargs):
    check.inst_param(sa_resource, 'sa_resource', SqlAlchemyResource)
    resources = DefaultSqlAlchemyResources(sa_resource)
    context = create_test_runtime_execution_context(resources=resources,
                                                    *args,
                                                    **kwargs)
    return check_supports_sql_alchemy_resource(context)
Esempio n. 3
0
def test_log_message_id():
    logger = LoggerForTest()
    context = create_test_runtime_execution_context(loggers=[logger])
    context.info('something')

    assert isinstance(
        uuid.UUID(logger.messages[0].dagster_meta['log_message_id']),
        uuid.UUID)
Esempio n. 4
0
def test_context_value():
    logger = LoggerForTest()
    context = create_test_runtime_execution_context(loggers=[logger])

    with context.value('some_key', 'some_value'):
        context.info('some message')

    assert logger.messages[0].dagster_meta['some_key'] == 'some_value'
    assert 'some_key="some_value"' in logger.messages[0].msg
    assert 'message="some message"' in logger.messages[0].msg
Esempio n. 5
0
def test_write_dagster_meta():
    with get_temp_file_name() as tf_name:
        logger = define_json_file_logger('foo', tf_name, DEBUG)
        execution_context = create_test_runtime_execution_context(loggers=[logger])
        execution_context.debug('some_debug_message', context_key='context_value')
        data = list(parse_json_lines(tf_name))
        assert len(data) == 1
        assert data[0]['name'] == 'foo'
        assert data[0]['orig_message'] == 'some_debug_message'
        assert data[0]['context_key'] == 'context_value'
Esempio n. 6
0
def test_multicontext_value():
    logger = LoggerForTest()
    context = create_test_runtime_execution_context(loggers=[logger])
    with context.values({'key_one': 'value_one', 'key_two': 'value_two'}):
        context.info('message one')

    message_two = logger.messages[0]
    assert message_two.dagster_meta['key_one'] == 'value_one'
    assert message_two.dagster_meta['key_two'] == 'value_two'
    assert 'key_one="value_one"' in message_two.msg
    assert 'key_two="value_two"' in message_two.msg
Esempio n. 7
0
def test_compute_noop_node():
    pipeline = silencing_pipeline(solids=[noop])

    plan = create_execution_plan(pipeline)

    assert len(plan.steps) == 1
    outputs = list(
        execute_step(plan.steps[0], create_test_runtime_execution_context(),
                     {}))

    assert outputs[0].success_data.value == 'foo'
Esempio n. 8
0
def test_message_specific_logging():
    logger = LoggerForTest()
    context = create_test_runtime_execution_context(loggers=[logger])
    with context.value('key_one', 'value_one'):
        context.info('message one', key_two='value_two')

    message_one = logger.messages[0]
    assert message_one.dagster_meta['key_one'] == 'value_one'
    assert message_one.dagster_meta['key_two'] == 'value_two'

    assert set(message_one.dagster_meta.keys()) == set(
        ['key_one', 'key_two', 'log_message_id', 'orig_message', 'run_id'])
def test_structured_logger_in_context():
    messages = []

    def _append_message(logger_message):
        messages.append(logger_message)

    logger = define_structured_logger('some_name',
                                      _append_message,
                                      level=DEBUG)
    context = create_test_runtime_execution_context(loggers=[logger])
    context.debug('from_context', foo=2)
    assert len(messages) == 1
    message = messages[0]
    assert message.name == 'some_name'
    assert message.level == DEBUG
    assert message.meta['foo'] == 2
    assert message.meta['orig_message'] == 'from_context'
Esempio n. 10
0
def test_interleaved_context_value():
    logger = LoggerForTest()
    context = create_test_runtime_execution_context(loggers=[logger])

    with context.value('key_one', 'value_one'):
        context.info('message one')
        with context.value('key_two', 'value_two'):
            context.info('message two')

    message_one = logger.messages[0]
    assert message_one.dagster_meta['key_one'] == 'value_one'
    assert 'key_two' not in message_one.extra
    assert 'key_one="value_one"' in message_one.msg
    assert 'key_two' not in message_one.msg

    message_two = logger.messages[1]
    assert message_two.dagster_meta['key_one'] == 'value_one'
    assert message_two.dagster_meta['key_two'] == 'value_two'
    assert 'key_one="value_one"' in message_two.msg
    assert 'key_two="value_two"' in message_two.msg
Esempio n. 11
0
def _do_test(pipeline, do_execute_pipeline_iter):

    results = list()

    for result in do_execute_pipeline_iter():
        results.append(result)

    result = PipelineExecutionResult(pipeline,
                                     create_test_runtime_execution_context(),
                                     results)

    assert result.result_for_solid('A').transformed_value() == [
        input_set('A_input'),
        transform_called('A'),
    ]

    assert result.result_for_solid('B').transformed_value() == [
        input_set('A_input'),
        transform_called('A'),
        transform_called('B'),
    ]

    assert result.result_for_solid('C').transformed_value() == [
        input_set('A_input'),
        transform_called('A'),
        transform_called('C'),
    ]

    assert result.result_for_solid('D').transformed_value() == [
        input_set('A_input'),
        transform_called('A'),
        transform_called('C'),
        transform_called('B'),
        transform_called('D'),
    ] or result.result_for_solid('D').transformed_value() == [
        input_set('A_input'),
        transform_called('A'),
        transform_called('B'),
        transform_called('C'),
        transform_called('D'),
    ]
Esempio n. 12
0
def test_context_logging():
    logger = LoggerForTest()
    context = create_test_runtime_execution_context(loggers=[logger])
    context.debug('debug from context')
    context.info('info from context')
    context.warning('warning from context')
    context.error('error from context')
    context.critical('critical from context')

    assert len(logger.messages) == 5

    assert logger.messages[0].level == DEBUG
    assert orig_message(logger.messages[0]) == 'debug from context'
    assert logger.messages[1].level == INFO
    assert orig_message(logger.messages[1]) == 'info from context'
    assert logger.messages[2].level == WARNING
    assert orig_message(logger.messages[2]) == 'warning from context'
    assert logger.messages[3].level == ERROR
    assert orig_message(logger.messages[3]) == 'error from context'
    assert logger.messages[4].level == CRITICAL
    assert orig_message(logger.messages[4]) == 'critical from context'
Esempio n. 13
0
def test_construct_event_record():
    messages = []

    def _append_message(logger_message):
        messages.append(construct_event_record(logger_message))

    logger = define_structured_logger('some_name',
                                      _append_message,
                                      level=DEBUG)
    context = create_test_runtime_execution_context(loggers=[logger])
    context.info('random message')

    assert len(messages) == 1
    message = messages[0]
    assert isinstance(message, LogMessageRecord)

    with context.value('pipeline', 'some_pipeline'):
        context.events.pipeline_start()

    assert len(messages) == 2
    pipeline_start = messages[1]
    assert isinstance(pipeline_start, PipelineEventRecord)
    assert pipeline_start.event_type == EventType.PIPELINE_START
Esempio n. 14
0
def test_get_context_value():
    context = create_test_runtime_execution_context()

    with context.value('some_key', 'some_value'):
        assert context.get_context_value('some_key') == 'some_value'
Esempio n. 15
0
def test_noarg_ctor():
    context = create_test_runtime_execution_context()
    assert uuid.UUID(context.run_id)