def test_modified_docker_operator_bad_command():
    operator = DagsterDockerOperator(
        image='dagster-airflow-demo',
        api_version='auto',
        task_id='nonce',
        command='gargle bargle',
        environment_dict={},
        pipeline_name='',
    )
    with pytest.raises(AirflowException, match='\'StatusCode\': 2'):
        operator.execute({})
Пример #2
0
def test_modified_docker_operator_env():
    operator = DagsterDockerOperator(
        image='dagster-airflow-demo',
        api_version='auto',
        task_id='nonce',
        command='--help',
        config='',
        pipeline_name='',
    )
    with pytest.raises(AirflowException, match='Unhandled error type'):
        operator.execute({})
def test_modified_docker_operator_env():
    operator = DagsterDockerOperator(
        image='dagster-airflow-demo',
        api_version='auto',
        task_id='nonce',
        command='--help',
        environment_dict={},
        pipeline_name='',
    )
    with pytest.raises(DagsterGraphQLClientError,
                       match='Unhandled error type'):
        operator.execute({})
Пример #4
0
def test_modified_docker_operator_bad_docker_conn():
    operator = DagsterDockerOperator(
        image='dagster-airflow-demo',
        api_version='auto',
        task_id='nonce',
        docker_conn_id='foo_conn',
        command='--help',
        config='',
        pipeline_name='',
    )

    with pytest.raises(AirflowException, match='The conn_id `foo_conn` isn\'t defined'):
        operator.execute({})
def test_modified_docker_operator_url():
    try:
        docker_host = os.getenv('DOCKER_HOST')
        docker_tls_verify = os.getenv('DOCKER_TLS_VERIFY')
        docker_cert_path = os.getenv('DOCKER_CERT_PATH')

        os.environ['DOCKER_HOST'] = 'gargle'
        os.environ['DOCKER_TLS_VERIFY'] = 'bargle'
        os.environ['DOCKER_CERT_PATH'] = 'farfle'

        operator = DagsterDockerOperator(
            image='dagster-airflow-demo',
            api_version='auto',
            task_id='nonce',
            docker_url=docker_host or 'unix:///var/run/docker.sock',
            tls_hostname=docker_host if docker_tls_verify else False,
            tls_ca_cert=docker_cert_path,
            command='--help',
            environment_dict={'storage': {
                'filesystem': {}
            }},
            pipeline_name='',
        )

        with pytest.raises(DagsterGraphQLClientError,
                           match='Unhandled error type'):
            operator.execute({})

    finally:
        if docker_host is not None:
            os.environ['DOCKER_HOST'] = docker_host
        else:
            del os.environ['DOCKER_HOST']

        if docker_tls_verify is not None:
            os.environ['DOCKER_TLS_VERIFY'] = docker_tls_verify
        else:
            del os.environ['DOCKER_TLS_VERIFY']

        if docker_cert_path is not None:
            os.environ['DOCKER_CERT_PATH'] = docker_cert_path or ''
        else:
            del os.environ['DOCKER_CERT_PATH']