Пример #1
0
    def test_write_master_package(
        self,
        render_jinja2_template_mock: MagicMock,
        blackify_mock: MagicMock,
        BOTO3_STUBS_STATIC_PATH_MOCK: MagicMock,
        filecmp_mock: MagicMock,
        shutil_mock: MagicMock,
    ) -> None:
        package_mock = MagicMock()
        output_path_mock = MagicMock()
        static_path_mock = MagicMock()
        BOTO3_STUBS_STATIC_PATH_MOCK.glob.return_value = [
            static_path_mock,
        ]
        output_path_mock.__truediv__.return_value = output_path_mock
        self.assertEqual(
            write_boto3_stubs_package(package_mock, output_path_mock),
            [output_path_mock] * 7,
        )
        render_jinja2_template_mock.assert_called_with(
            Path("boto3-stubs/boto3-stubs/version.py.jinja2"),
            package=package_mock,
        )
        blackify_mock.assert_called_with(render_jinja2_template_mock(),
                                         output_path_mock)

        filecmp_mock.cmp.return_value = False
        self.assertEqual(
            write_boto3_stubs_package(package_mock, output_path_mock),
            [output_path_mock] * 8,
        )
        shutil_mock.copy.assert_called()
Пример #2
0
def process_boto3_stubs(
    session: Session,
    output_path: Path,
    service_names: List[ServiceName],
    generate_setup: bool,
) -> Boto3StubsPackage:
    """
    Parse and write stubs package `boto3_stubs`.

    Arguments:
        session -- boto3 session.
        output_path -- Package output path.
        service_names -- List of known service names.
        generate_setup -- Generate ready-to-install or to-use package.

    Return:
        Parsed Boto3StubsPackage.
    """
    logger = get_logger()
    logger.debug("Parsing boto3 stubs")
    boto3_stubs_package = parse_boto3_stubs_package(
        session=session, service_names=service_names)
    logger.debug(f"Writing boto3 stubs to {NicePath(output_path)}")

    write_boto3_stubs_package(boto3_stubs_package,
                              output_path,
                              generate_setup=generate_setup)
    return boto3_stubs_package
Пример #3
0
    def test_write_master_package(
        self,
        render_jinja2_template_mock: MagicMock,
        blackify_mock: MagicMock,
        sort_imports_mock: MagicMock,
    ) -> None:
        package_mock = MagicMock()
        package_mock.name = "package"
        package_mock.service_name.module_name = "module"

        blackify_mock.return_value = "blackify"
        sort_imports_mock.return_value = "sort_imports"
        render_jinja2_template_mock.return_value = "render_jinja2_template_mock"

        with tempfile.TemporaryDirectory() as output_dir:
            output_path = Path(output_dir)
            write_boto3_stubs_package(package_mock, output_path, True)
            render_jinja2_template_mock.assert_called_with(
                Path("boto3-stubs/boto3-stubs/version.py.jinja2"),
                package=package_mock,
            )
            assert len(blackify_mock.mock_calls) == 6
            assert len(sort_imports_mock.mock_calls) == 6
            blackify_mock.reset_mock()
            sort_imports_mock.reset_mock()

        with tempfile.TemporaryDirectory() as output_dir:
            output_path = Path(output_dir)
            write_boto3_stubs_package(package_mock, output_path, False)
            render_jinja2_template_mock.assert_called_with(
                Path("boto3-stubs/boto3-stubs/version.py.jinja2"),
                package=package_mock,
            )
            assert len(blackify_mock.mock_calls) == 5
            assert len(sort_imports_mock.mock_calls) == 5
Пример #4
0
def process_boto3_stubs(
    session: Session,
    output_path: Path,
    service_names: List[ServiceName],
    generate_setup: bool,
) -> Boto3StubsPackage:
    """
    Parse and write stubs package `boto3_stubs`.

    Arguments:
        session -- boto3 session.
        output_path -- Package output path.
        service_names -- List of known service names.
        generate_setup -- Whether to generate install or installed package.

    Return:
        Parsed Boto3StubsPackage.
    """
    logger.debug("Parsing boto3 stubs")
    boto3_stub_package = parse_boto3_stubs_package(session=session,
                                                   service_names=service_names)
    logger.debug(f"Writing boto3 stubs to {NicePath(output_path)}")

    modified_paths = write_boto3_stubs_package(boto3_stub_package,
                                               output_path,
                                               generate_setup=generate_setup)
    for modified_path in modified_paths:
        logger.debug(f"Updated {NicePath(modified_path)}")

    return boto3_stub_package
Пример #5
0
def process_boto3_stubs(output_path: Path,
                        service_names: List[ServiceName]) -> Boto3StubsPackage:
    """
    Parse and write stubs package `boto3_stubs`.

    Arguments:
        output_path -- Package output path.

    Return:
        Parsed Boto3StubsPackage.
    """
    logger.debug("Parsing boto3 stubs")
    boto3_stub_package = Boto3StubsPackage(service_names=service_names)
    logger.debug(f"Writing boto3 stubs to {NicePath(output_path)}")

    modified_paths = write_boto3_stubs_package(boto3_stub_package, output_path)
    for modified_path in modified_paths:
        logger.debug(f"Updated {NicePath(modified_path)}")

    return boto3_stub_package