コード例 #1
0
def test_sync_list_python_file_grpc_with_error():
    python_file = file_relative_path(__file__, "error_on_load_repo.py")
    with pytest.raises(DagsterUserCodeProcessError) as e:
        sync_list_repositories_ephemeral_grpc(
            sys.executable,
            python_file=python_file,
            module_name=None,
            working_directory=None,
            attribute=None,
            package_name=None,
        )

    assert e.value.args[0].startswith("(ValueError) - ValueError: User did something bad")
    assert e.value.args[0].endswith('raise ValueError("User did something bad")\n')
コード例 #2
0
def test_sync_list_python_file_multi_repo_grpc():
    python_file = file_relative_path(__file__, 'multiple_repos.py')
    response = sync_list_repositories_ephemeral_grpc(sys.executable,
                                                     python_file=python_file,
                                                     module_name=None,
                                                     working_directory=None)

    loadable_repo_symbols = response.repository_symbols

    assert isinstance(loadable_repo_symbols, list)
    assert len(loadable_repo_symbols) == 2
    assert isinstance(loadable_repo_symbols[0], LoadableRepositorySymbol)
    assert isinstance(loadable_repo_symbols[1], LoadableRepositorySymbol)

    by_symbol = {lrs.attribute: lrs for lrs in loadable_repo_symbols}

    assert by_symbol['repo_one_symbol'].repository_name == 'repo_one'
    assert by_symbol['repo_two'].repository_name == 'repo_two'

    executable_path = response.executable_path
    assert executable_path == sys.executable

    repository_code_pointer_dict = response.repository_code_pointer_dict
    assert 'repo_one' in repository_code_pointer_dict
    assert 'repo_two' in repository_code_pointer_dict

    assert isinstance(repository_code_pointer_dict['repo_one'],
                      FileCodePointer)
    assert repository_code_pointer_dict['repo_one'].python_file == python_file
    assert repository_code_pointer_dict[
        'repo_one'].fn_name == 'repo_one_symbol'

    assert isinstance(repository_code_pointer_dict['repo_two'],
                      FileCodePointer)
    assert repository_code_pointer_dict['repo_two'].fn_name == 'repo_two'
コード例 #3
0
def test_sync_list_python_file_grpc():
    python_file = file_relative_path(__file__, 'api_tests_repo.py')
    response = sync_list_repositories_ephemeral_grpc(sys.executable,
                                                     python_file=python_file,
                                                     module_name=None,
                                                     working_directory=None)

    loadable_repo_symbols = response.repository_symbols

    assert isinstance(loadable_repo_symbols, list)
    assert len(loadable_repo_symbols) == 1
    assert isinstance(loadable_repo_symbols[0], LoadableRepositorySymbol)

    symbol = loadable_repo_symbols[0]

    assert symbol.repository_name == 'bar_repo'
    assert symbol.attribute == 'bar_repo'

    executable_path = response.executable_path
    assert executable_path == sys.executable

    repository_code_pointer_dict = response.repository_code_pointer_dict
    assert 'bar_repo' in repository_code_pointer_dict
    assert isinstance(repository_code_pointer_dict['bar_repo'],
                      FileCodePointer)
    assert repository_code_pointer_dict['bar_repo'].python_file.endswith(
        "api_tests_repo.py")
    assert repository_code_pointer_dict['bar_repo'].fn_name == 'bar_repo'
コード例 #4
0
def test_sync_list_python_module_grpc():
    module_name = 'dagster.utils.test.hello_world_repository'
    response = sync_list_repositories_ephemeral_grpc(
        sys.executable,
        python_file=None,
        module_name=module_name,
        working_directory=None,
    )

    loadable_repo_symbols = response.repository_symbols

    assert isinstance(loadable_repo_symbols, list)
    assert len(loadable_repo_symbols) == 1
    assert isinstance(loadable_repo_symbols[0], LoadableRepositorySymbol)

    symbol = loadable_repo_symbols[0]

    assert symbol.repository_name == 'hello_world_repository'
    assert symbol.attribute == 'hello_world_repository'

    executable_path = response.executable_path
    assert executable_path == sys.executable

    repository_code_pointer_dict = response.repository_code_pointer_dict

    assert 'hello_world_repository' in repository_code_pointer_dict
    assert isinstance(repository_code_pointer_dict['hello_world_repository'],
                      ModuleCodePointer)
    assert repository_code_pointer_dict[
        'hello_world_repository'].module == module_name
    assert (repository_code_pointer_dict['hello_world_repository'].fn_name ==
            'hello_world_repository')
コード例 #5
0
def test_sync_list_python_file_attribute_multi_repo_grpc():
    python_file = file_relative_path(__file__, "multiple_repos.py")
    response = sync_list_repositories_ephemeral_grpc(
        sys.executable,
        python_file=python_file,
        module_name=None,
        working_directory=None,
        attribute="repo_one_symbol",
        package_name=None,
    )

    loadable_repo_symbols = response.repository_symbols

    assert isinstance(loadable_repo_symbols, list)
    assert len(loadable_repo_symbols) == 1
    assert isinstance(loadable_repo_symbols[0], LoadableRepositorySymbol)

    symbol = loadable_repo_symbols[0]

    assert symbol.repository_name == "repo_one"
    assert symbol.attribute == "repo_one_symbol"

    executable_path = response.executable_path
    assert executable_path == sys.executable

    repository_code_pointer_dict = response.repository_code_pointer_dict
    assert "repo_one" in repository_code_pointer_dict

    assert isinstance(repository_code_pointer_dict["repo_one"],
                      FileCodePointer)
    assert repository_code_pointer_dict["repo_one"].python_file == python_file
    assert repository_code_pointer_dict[
        "repo_one"].fn_name == "repo_one_symbol"
コード例 #6
0
def test_sync_list_python_package_attribute_grpc():
    package_name = "dagster.utils.test.hello_world_repository"
    response = sync_list_repositories_ephemeral_grpc(
        sys.executable,
        python_file=None,
        module_name=None,
        working_directory=None,
        attribute="hello_world_repository",
        package_name=package_name,
    )

    loadable_repo_symbols = response.repository_symbols

    assert isinstance(loadable_repo_symbols, list)
    assert len(loadable_repo_symbols) == 1
    assert isinstance(loadable_repo_symbols[0], LoadableRepositorySymbol)

    symbol = loadable_repo_symbols[0]

    assert symbol.repository_name == "hello_world_repository"
    assert symbol.attribute == "hello_world_repository"

    executable_path = response.executable_path
    assert executable_path == sys.executable

    repository_code_pointer_dict = response.repository_code_pointer_dict

    assert "hello_world_repository" in repository_code_pointer_dict
    assert isinstance(repository_code_pointer_dict["hello_world_repository"],
                      PackageCodePointer)
    assert repository_code_pointer_dict[
        "hello_world_repository"].module == package_name
    assert (repository_code_pointer_dict["hello_world_repository"].attribute ==
            "hello_world_repository")