Exemplo n.º 1
0
        def it_should_show_help(capsys) -> None:
            with pytest.raises(SystemExit):
                parse_main_arguments(list())

                out, err = capsys.readouterr()

                assert err != "", "There should be an error message"
                assert out == "", "There should not be an output message"
Exemplo n.º 2
0
        def it_should_show_help(capsys) -> None:
            with pytest.raises(SystemExit):
                args = [
                    *_engine_args(DbEngine.MSSQL),
                    *_server_args(),
                    *_integrated_security_arg(),
                ]

                parse_main_arguments(args)

                _assert_error_message(capsys)
Exemplo n.º 3
0
        def it_should_require_password(capsys) -> None:
            with pytest.raises(SystemExit):
                args = [
                    *_path_args(),
                    *_server_args(),
                    *_db_name_args(),
                    *_username_args(),
                ]

                parse_main_arguments(args)

                _assert_error_message(capsys)
Exemplo n.º 4
0
            def it_should_parse_the_log_level(capsys) -> None:
                args = [
                    *_path_args(), *_server_args(), *_db_name_args(),
                    *_integrated_security_arg(), *_engine_args(DbEngine.MSSQL),
                    "--log-level", "DEBUG"
                ]

                parsed = parse_main_arguments(args)

                _assert_no_messages(capsys)

                assert parsed is not None, "No arguments detected"
                assert parsed.log_level == "DEBUG"
Exemplo n.º 5
0
            def it_should_add_Encrypt_to_connection_string() -> None:
                args = [
                    *_path_args(),
                    *_server_args(),
                    *_db_name_args(),
                    *_integrated_security_arg(),
                    *_encrypt_args(),
                ]

                parsed = parse_main_arguments(args)

                url = str(parsed.get_adapter().engine.url)
                assert "Encrypt=yes" in url
                assert "TrustServerCertificate=yes" not in url
Exemplo n.º 6
0
            def it_should_have_a_plain_connection_string(capsys, ) -> None:
                args = [
                    *_path_args(),
                    *_server_args(),
                    *_db_name_args(),
                    *_integrated_security_arg(),
                    *_engine_args(DbEngine.MSSQL),
                ]

                parsed = parse_main_arguments(args)

                _assert_no_messages(capsys)
                assert (
                    "mssql+pyodbc://localhost,1433/EdFi_ODS?driver=ODBC+Driver+17+for+SQL+Server"
                    == str(parsed.get_adapter().engine.url))
Exemplo n.º 7
0
    def it_should_parse_csv_path(capsys) -> None:
        args = [
            *_path_args(),
            *_server_args(),
            *_db_name_args(),
            *_integrated_security_arg(),
        ]

        parsed = parse_main_arguments(args)

        assert parsed is not None, "No arguments detected"

        assert parsed.csv_path == PATH

        _assert_no_messages(capsys)
Exemplo n.º 8
0
        def it_should_not_require_username_and_password(capsys) -> None:
            args = [
                *_path_args(),
                *_server_args(),
                *_db_name_args(),
                "-i",
            ]

            parsed = parse_main_arguments(args)

            assert parsed is not None, "No arguments detected"

            assert parsed.engine == DbEngine.MSSQL

            _assert_no_messages(capsys)
Exemplo n.º 9
0
        def it_should_default_to_mssql(capsys) -> None:
            args = [
                *_path_args(),
                *_server_args(),
                *_db_name_args(),
                *_integrated_security_arg(),
            ]

            parsed = parse_main_arguments(args)

            assert parsed is not None, "No arguments detected"

            assert parsed.engine == DbEngine.MSSQL

            _assert_no_messages(capsys)
Exemplo n.º 10
0
        def it_should_inject_port_into_connection_string(capsys) -> None:
            args = [
                *_path_args(),
                *_server_args(),
                *_db_name_args(),
                *_integrated_security_arg(),
                *port_args(),
            ]

            parsed = parse_main_arguments(args)

            _assert_no_messages(capsys)

            assert parsed is not None, "No arguments detected"

            assert str(PORT) in str(parsed.get_adapter().engine.url)
Exemplo n.º 11
0
def main() -> None:

    load_dotenv()
    # WARNING! Do not make the following call in a function decorated with @catch_exceptions
    arguments = parse_main_arguments(sys.argv[1:])
    _configure_logging(arguments)
    error_tracker: ErrorHandler = ErrorHandler()

    _run_loader(arguments)

    if error_tracker.fired:
        print(
            "A fatal error occurred, please review the log output for more information.",
            file=sys.stderr,
        )
        sys.exit(1)
    sys.exit(0)
Exemplo n.º 12
0
        def fixture(capsys) -> MainArguments:
            # Arrange
            args = [
                *_path_args(),
                *_server_args(),
                *_db_name_args(),
                *_engine_args(DbEngine.MSSQL),
                *_username_args(),
                *_password_args(),
                *port_args(),
            ]

            # Act
            parsed = parse_main_arguments(args)

            _assert_no_messages(capsys)

            return parsed
Exemplo n.º 13
0
            def it_should_set_trusted_connection_in_the_connection_string(
                    capsys) -> None:
                args = [
                    *_path_args(),
                    *_server_args(),
                    *_db_name_args(),
                    *_integrated_security_arg(),
                    *_engine_args(DbEngine.MSSQL),
                ]

                parsed = parse_main_arguments(args)

                _assert_no_messages(capsys)

                assert parsed is not None, "No arguments detected"

                # Test the details of the connection string in a more appropriate test
                # suite - test only enough here to prove the point
                assert "Trusted_Connection=yes" in parsed.connection_string