Skip to content

feat(prowler): chunk1 init the project (#422) - #430

Draft
Christophe Melchior (Kakudou) wants to merge 4 commits into
mainfrom
feat/422-prowler-injector-chk1-init
Draft

feat(prowler): chunk1 init the project (#422)#430
Christophe Melchior (Kakudou) wants to merge 4 commits into
mainfrom
feat/422-prowler-injector-chk1-init

Conversation

@Kakudou

Copy link
Copy Markdown
Member

Part of #422. Chunk 1 of the Prowler injector stack: init the project — catalog registration scaffold, configuration loading, CLI entrypoint, safe startup logging, BDD test scaffolding.

@Filigran-Automation Filigran Automation (Filigran-Automation) changed the title feat(prowler): Chunk1 init the project (#422) feat(prowler): chunk1 init the project (#422) Aug 26, 2026
@Filigran-Automation Filigran Automation (Filigran-Automation) added the filigran team Item from the Filigran team. label Aug 26, 2026
@codecov

codecov Bot commented Aug 26, 2026

Copy link
Copy Markdown

❌ 1 Tests Failed:

Tests completed Failed Passed Skipped
503 1 502 0
View the top 1 failed test(s) by shortest run time
tests.behaviour.chk001_catalog_scaffold.test_chk001_catalog_scaffold_bdd::test_foundation_startup_registers_no_assessment_contracts
Stack Traces | 0.004s run time
standard_injector_environment = None

    def test_foundation_startup_registers_no_assessment_contracts(
        standard_injector_environment: None,
    ) -> None:
        """The foundation starts its listener with an empty contract catalog."""
        _given_the_prowler_project()
>       config, helper = _when_injector_starts()
                         ^^^^^^^^^^^^^^^^^^^^^^^

.../behaviour/chk001_catalog_scaffold/test_chk001_catalog_scaffold_bdd.py:145: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.../behaviour/chk001_catalog_scaffold/test_chk001_catalog_scaffold_bdd.py:69: in _when_injector_starts
    config = ConfigLoader()
             ^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

__pydantic_self__ = ConfigLoader(), _case_sensitive = None
_nested_model_default_partial_update = None, _env_prefix = None
_env_prefix_target = None, _env_file = PosixPath('.'), _env_file_encoding = None
_env_ignore_empty = None, _env_nested_delimiter = None
_env_nested_max_split = None, _env_parse_none_str = None
_env_parse_enums = None, _cli_prog_name = None, _cli_parse_args = None
_cli_settings_source = None, _cli_parse_none_str = None
_cli_hide_none_type = None, _cli_avoid_json = None, _cli_enforce_required = None
_cli_use_class_docs_for_groups = None, _cli_exit_on_error = None
_cli_prefix = None, _cli_flag_prefix_char = None, _cli_implicit_flags = None
_cli_ignore_unknown_args = None, _cli_kebab_case = None, _cli_shortcuts = None
_secrets_dir = None, _build_sources = None, values = {}
sources = (EnvSettingsSource(env_nested_delimiter='_', env_prefix_len=0), DefaultSettingsSource(nested_model_default_partial_update=False))
init_kwargs = {}

    def __init__(
        __pydantic_self__,
        _case_sensitive: bool | None = None,
        _nested_model_default_partial_update: bool | None = None,
        _env_prefix: str | None = None,
        _env_prefix_target: EnvPrefixTarget | None = None,
        _env_file: DotenvType | None = ENV_FILE_SENTINEL,
        _env_file_encoding: str | None = None,
        _env_ignore_empty: bool | None = None,
        _env_nested_delimiter: str | None = None,
        _env_nested_max_split: int | None = None,
        _env_parse_none_str: str | None = None,
        _env_parse_enums: bool | None = None,
        _cli_prog_name: str | None = None,
        _cli_parse_args: bool | list[str] | tuple[str, ...] | None = None,
        _cli_settings_source: CliSettingsSource[Any] | None = None,
        _cli_parse_none_str: str | None = None,
        _cli_hide_none_type: bool | None = None,
        _cli_avoid_json: bool | None = None,
        _cli_enforce_required: bool | None = None,
        _cli_use_class_docs_for_groups: bool | None = None,
        _cli_exit_on_error: bool | None = None,
        _cli_prefix: str | None = None,
        _cli_flag_prefix_char: str | None = None,
        _cli_implicit_flags: bool | Literal['dual', 'toggle'] | None = None,
        _cli_ignore_unknown_args: bool | None = None,
        _cli_kebab_case: bool | Literal['all', 'no_enums'] | None = None,
        _cli_shortcuts: Mapping[str, str | list[str]] | None = None,
        _secrets_dir: PathType | None = None,
        _build_sources: tuple[tuple[PydanticBaseSettingsSource, ...], dict[str, Any]] | None = None,
        **values: Any,
    ) -> None:
        sources, init_kwargs = (
            _build_sources
            if _build_sources is not None
            else __pydantic_self__.__class__._settings_init_sources(
                _case_sensitive=_case_sensitive,
                _nested_model_default_partial_update=_nested_model_default_partial_update,
                _env_prefix=_env_prefix,
                _env_prefix_target=_env_prefix_target,
                _env_file=_env_file,
                _env_file_encoding=_env_file_encoding,
                _env_ignore_empty=_env_ignore_empty,
                _env_nested_delimiter=_env_nested_delimiter,
                _env_nested_max_split=_env_nested_max_split,
                _env_parse_none_str=_env_parse_none_str,
                _env_parse_enums=_env_parse_enums,
                _cli_prog_name=_cli_prog_name,
                _cli_parse_args=_cli_parse_args,
                _cli_settings_source=_cli_settings_source,
                _cli_parse_none_str=_cli_parse_none_str,
                _cli_hide_none_type=_cli_hide_none_type,
                _cli_avoid_json=_cli_avoid_json,
                _cli_enforce_required=_cli_enforce_required,
                _cli_use_class_docs_for_groups=_cli_use_class_docs_for_groups,
                _cli_exit_on_error=_cli_exit_on_error,
                _cli_prefix=_cli_prefix,
                _cli_flag_prefix_char=_cli_flag_prefix_char,
                _cli_implicit_flags=_cli_implicit_flags,
                _cli_ignore_unknown_args=_cli_ignore_unknown_args,
                _cli_kebab_case=_cli_kebab_case,
                _cli_shortcuts=_cli_shortcuts,
                _secrets_dir=_secrets_dir,
                _init_kwargs=values,
            )
        )
    
>       super().__init__(**__pydantic_self__.__class__._settings_build_values(sources, init_kwargs))
E       pydantic_core._pydantic_core.ValidationError: 1 validation error for ConfigLoader
E       openaev.tenant_id
E         Input should be a valid UUID, invalid character: found `t` at 1 [type=uuid_parsing, input_value='test-tenant', input_type=str]
E           For further information visit https://errors.pydantic.dev/2.13/v/uuid_parsing

../../../../..../pypoetry/virtualenvs/openaev-prowler-injector-c-ZdwkI6-py3.13/lib/python3.13.../site-packages/pydantic_settings/main.py:247: ValidationError

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

filigran team Item from the Filigran team.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants