Closed javierdelapuente closed 1 month ago
Unit tests failed for a6b514b26083d68b0b22dd8e4c2a9ddd4f4ffdbb
```
============================= test session starts ============================== platform linux -- Python 3.10.12, pytest-8.3.2, pluggy-1.5.0 -- /home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/bin/python cachedir: .tox/unit/.pytest_cache rootdir: /home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer configfile: pyproject.toml collecting ... collected 67 items
tests/unit/django/test_charm.py::test_django_config[default] PASSED tests/unit/django/test_charm.py::test_django_config[allowed-hosts] PASSED tests/unit/django/test_charm.py::test_django_config[debug] PASSED tests/unit/django/test_charm.py::test_django_config[secret-key] PASSED tests/unit/django/test_charm.py::test_django_create_super_user PASSED tests/unit/flask/test_charm.py::test_flask_pebble_layer PASSED tests/unit/flask/test_charm.py::test_rotate_secret_key_action PASSED tests/unit/flask/test_charm.py::test_ingress PASSED tests/unit/flask/test_charm.py::test_integrations_wiring PASSED tests/unit/flask/test_charm.py::test_missing_integrations[s3 fails] PASSED tests/unit/flask/test_charm.py::test_missing_integrations[postgresql and mysql fail] PASSED tests/unit/flask/test_charm.py::test_missing_integrations[all fail] PASSED tests/unit/flask/test_charm.py::test_missing_required_integration_stops_all_and_sets_migration_to_pending PASSED tests/unit/flask/test_charm.py::test_invalid_config PASSED tests/unit/flask/test_charm.py::test_invalid_integration PASSED tests/unit/flask/test_charm_state.py::test_charm_state_flask_config[env] PASSED tests/unit/flask/test_charm_state.py::test_charm_state_flask_config[debug] PASSED tests/unit/flask/test_charm_state.py::test_charm_state_flask_config[secret-key] PASSED tests/unit/flask/test_charm_state.py::test_charm_state_flask_config[preferred-url-scheme] PASSED tests/unit/flask/test_charm_state.py::test_charm_state_invalid_flask_config[env] PASSED tests/unit/flask/test_charm_state.py::test_charm_state_invalid_flask_config[secret-key] PASSED tests/unit/flask/test_charm_state.py::test_charm_state_invalid_flask_config[preferred-url-scheme] PASSED tests/unit/flask/test_charm_state.py::test_s3_integration[empty] PASSED tests/unit/flask/test_charm_state.py::test_s3_integration[with data] PASSED tests/unit/flask/test_charm_state.py::test_s3_integration_raises PASSED tests/unit/flask/test_charm_state.py::test_s3_addressing_style[host-virtual] PASSED tests/unit/flask/test_charm_state.py::test_s3_addressing_style[path-path] PASSED tests/unit/flask/test_charm_state.py::test_s3_addressing_style[None-None] PASSED tests/unit/flask/test_charm_state.py::test_saml_integration PASSED tests/unit/flask/test_charm_state.py::test_saml_integration_invalid[Empty relation data] PASSED tests/unit/flask/test_charm_state.py::test_saml_integration_invalid[Missing single_sign_on_service_redirect_url] PASSED tests/unit/flask/test_charm_state.py::test_saml_integration_invalid[Missing x509certs] PASSED tests/unit/flask/test_charm_state.py::test_saml_integration_invalid[Empty x509certs] PASSED tests/unit/flask/test_database_migration.py::test_database_migration PASSED tests/unit/flask/test_database_migration.py::test_database_migrate_command[executable] PASSED tests/unit/flask/test_database_migration.py::test_database_migrate_command[shell] PASSED tests/unit/flask/test_database_migration.py::test_database_migrate_command[python] PASSED tests/unit/flask/test_database_migration.py::test_database_migrate_command[django] PASSED tests/unit/flask/test_database_migration.py::test_database_migration_status PASSED tests/unit/flask/test_databases.py::test_database_get_uri_mocked[relation0-mysql://test-username:test-password@test-mysql:3306/flask-app] PASSED tests/unit/flask/test_databases.py::test_database_get_uri_mocked[relation1-postgresql://test-username:test-password@test-postgresql:5432/test-database] PASSED tests/unit/flask/test_databases.py::test_database_get_uri_mocked[relation2-mongodb://foobar/] PASSED tests/unit/flask/test_flask_app.py::test_flask_env[env] PASSED tests/unit/flask/test_flask_app.py::test_flask_env[permanent_session_lifetime] PASSED tests/unit/flask/test_flask_app.py::test_flask_env[debug] PASSED tests/unit/flask/test_flask_app.py::test_flask_env[duplicate] PASSED tests/unit/flask/test_flask_app.py::test_http_proxy[no_env] PASSED tests/unit/flask/test_flask_app.py::test_http_proxy[no_proxy] PASSED tests/unit/flask/test_flask_app.py::test_http_proxy[http_proxy] PASSED tests/unit/flask/test_flask_app.py::test_http_proxy[https_proxy] PASSED tests/unit/flask/test_flask_app.py::test_http_proxy[http_https_proxy] PASSED tests/unit/flask/test_flask_app.py::test_integrations_env[integrations is None] PASSED tests/unit/flask/test_flask_app.py::test_integrations_env[integrations exists] PASSED tests/unit/flask/test_flask_app.py::test_map_integrations_to_env[no new env vars] PASSED tests/unit/flask/test_flask_app.py::test_map_integrations_to_env[With Redis uri] PASSED tests/unit/flask/test_flask_app.py::test_map_integrations_to_env[With several databases, one of them None.] PASSED tests/unit/flask/test_flask_app.py::test_map_integrations_to_env[With minimal variables in S3 Integration.] PASSED tests/unit/flask/test_flask_app.py::test_map_integrations_to_env[With all variables in S3 Integration.] PASSED tests/unit/flask/test_webserver.py::test_gunicorn_config[workers=10] PASSED tests/unit/flask/test_webserver.py::test_gunicorn_config[threads=2,timeout=3,keepalive=4] PASSED tests/unit/flask/test_webserver.py::test_webserver_reload[True] PASSED tests/unit/flask/test_webserver.py::test_webserver_reload[False] PASSED tests/unit/go/test_app.py::test_go_environment_vars[set_env0-app_config0-framework_config0-None-expected0] PASSED tests/unit/go/test_app.py::test_go_environment_vars[set_env1-app_config1-framework_config1-integrations1-expected1] PASSED tests/unit/go/test_charm.py::test_go_config[default] ERROR tests/unit/go/test_charm.py::test_go_config[custom config] ERROR tests/unit/go/test_charm.py::test_metrics_config ERROR
==================================== ERRORS ====================================
__ ERROR at setup of test_go_config[default] ___
Traceback (most recent call last):
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/runner.py", line 341, in from_call
result: TResult | None = func()
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/runner.py", line 242, in @validator
validators are deprecated. You should migrate to Pydantic V2 style @field_validator
validators, see the migration guide for more details. Deprecated in Pydantic V2.0 to be removed in V3.0. See Pydantic V2 Migration Guide at https://errors.pydantic.dev/2.6/migration/
@validator("scheme", pre=True)
examples/flask/lib/charms/traefik_k8s/v2/ingress.py:262
/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/examples/flask/lib/charms/traefik_k8s/v2/ingress.py:262: PydanticDeprecatedSince20: Pydantic V1 style @validator
validators are deprecated. You should migrate to Pydantic V2 style @field_validator
validators, see the migration guide for more details. Deprecated in Pydantic V2.0 to be removed in V3.0. See Pydantic V2 Migration Guide at https://errors.pydantic.dev/2.6/migration/
@validator("port", pre=True)
examples/flask/lib/charms/traefik_k8s/v2/ingress.py:280
/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/examples/flask/lib/charms/traefik_k8s/v2/ingress.py:280: PydanticDeprecatedSince20: Pydantic V1 style @validator
validators are deprecated. You should migrate to Pydantic V2 style @field_validator
validators, see the migration guide for more details. Deprecated in Pydantic V2.0 to be removed in V3.0. See Pydantic V2 Migration Guide at https://errors.pydantic.dev/2.6/migration/
@validator("host", pre=True)
examples/flask/lib/charms/traefik_k8s/v2/ingress.py:286
/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/examples/flask/lib/charms/traefik_k8s/v2/ingress.py:286: PydanticDeprecatedSince20: Pydantic V1 style @validator
validators are deprecated. You should migrate to Pydantic V2 style @field_validator
validators, see the migration guide for more details. Deprecated in Pydantic V2.0 to be removed in V3.0. See Pydantic V2 Migration Guide at https://errors.pydantic.dev/2.6/migration/
@validator("ip", pre=True)
paas_app_charmer/charm_state.py:321
/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/paas_app_charmer/charm_state.py:321: PydanticDeprecatedSince20: pydantic.config.Extra
is deprecated, use literal values instead (e.g. extra='allow'
). Deprecated in Pydantic V2.0 to be removed in V3.0. See Pydantic V2 Migration Guide at https://errors.pydantic.dev/2.6/migration/
class SamlParameters(BaseModel, extra=Extra.allow):
paas_app_charmer/django/charm.py:18
/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/paas_app_charmer/django/charm.py:18: PydanticDeprecatedSince20: pydantic.config.Extra
is deprecated, use literal values instead (e.g. extra='allow'
). Deprecated in Pydantic V2.0 to be removed in V3.0. See Pydantic V2 Migration Guide at https://errors.pydantic.dev/2.6/migration/
class DjangoConfig(BaseModel, extra=Extra.ignore):
paas_app_charmer/django/charm.py:32
/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/paas_app_charmer/django/charm.py:32: PydanticDeprecatedSince20: Pydantic V1 style @validator
validators are deprecated. You should migrate to Pydantic V2 style @field_validator
validators, see the migration guide for more details. Deprecated in Pydantic V2.0 to be removed in V3.0. See Pydantic V2 Migration Guide at https://errors.pydantic.dev/2.6/migration/
@validator("allowed_hosts")
paas_app_charmer/flask/charm.py:16
/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/paas_app_charmer/flask/charm.py:16: PydanticDeprecatedSince20: pydantic.config.Extra
is deprecated, use literal values instead (e.g. extra='allow'
). Deprecated in Pydantic V2.0 to be removed in V3.0. See Pydantic V2 Migration Guide at https://errors.pydantic.dev/2.6/migration/
class FlaskConfig(BaseModel, extra=Extra.ignore):
paas_app_charmer/go/charm.py:16
/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/paas_app_charmer/go/charm.py:16: PydanticDeprecatedSince20: pydantic.config.Extra
is deprecated, use literal values instead (e.g. extra='allow'
). Deprecated in Pydantic V2.0 to be removed in V3.0. See Pydantic V2 Migration Guide at https://errors.pydantic.dev/2.6/migration/
class GoConfig(BaseModel, extra=Extra.allow):
tests/unit/django/test_charm.py: 26 warnings
tests/unit/flask/test_charm.py: 111 warnings
tests/unit/flask/test_charm_state.py: 4 warnings
tests/unit/go/test_app.py: 2 warnings
/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/pydantic/main.py:1024: PydanticDeprecatedSince20: The dict
method is deprecated; use model_dump
instead. Deprecated in Pydantic V2.0 to be removed in V3.0. See Pydantic V2 Migration Guide at https://errors.pydantic.dev/2.6/migration/
warnings.warn('The dict
method is deprecated; use model_dump
instead.', category=PydanticDeprecatedSince20)
tests/unit/django/test_charm.py::test_django_config[default]
tests/unit/django/test_charm.py::test_django_config[allowed-hosts]
tests/unit/django/test_charm.py::test_django_config[debug]
tests/unit/django/test_charm.py::test_django_config[secret-key]
tests/unit/django/test_charm.py::test_django_create_super_user
/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/pydantic/main.py:314: UserWarning: Pydantic serializer warnings:
Expected str
but got list
- serialized value may not be as expected
return self.__pydantic_serializer__.to_python(
tests/unit/flask/test_charm.py::test_ingress
tests/unit/flask/test_charm.py::test_ingress
tests/unit/flask/test_charm.py::test_ingress
tests/unit/flask/test_charm.py::test_ingress
tests/unit/flask/test_charm.py::test_ingress
tests/unit/flask/test_charm.py::test_ingress
tests/unit/flask/test_charm.py::test_ingress
tests/unit/flask/test_charm.py::test_ingress
/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/pydantic/_internal/_model_construction.py:252: PydanticDeprecatedSince20: The __fields__
attribute is deprecated, use model_fields
instead. Deprecated in Pydantic V2.0 to be removed in V3.0. See Pydantic V2 Migration Guide at https://errors.pydantic.dev/2.6/migration/
warnings.warn(
tests/unit/flask/test_charm.py: 66 warnings
/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/examples/flask/lib/charms/saml_integrator/v0/saml.py:140: PydanticDeprecatedSince20: parse_obj_as
is deprecated. Use pydantic.TypeAdapter.validate_python
instead. Deprecated in Pydantic V2.0 to be removed in V3.0. See Pydantic V2 Migration Guide at https://errors.pydantic.dev/2.6/migration/
url=parse_obj_as(AnyHttpUrl, relation_data[f"{prefix}url"]),
tests/unit/flask/test_charm.py: 33 warnings
/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/examples/flask/lib/charms/saml_integrator/v0/saml.py:204: PydanticDeprecatedSince20: parse_obj_as
is deprecated. Use pydantic.TypeAdapter.validate_python
instead. Deprecated in Pydantic V2.0 to be removed in V3.0. See Pydantic V2 Migration Guide at https://errors.pydantic.dev/2.6/migration/
metadata_url=parse_obj_as(
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ ERROR tests/unit/go/test_charm.py::test_go_config[default] - KeyError: 'app' ERROR tests/unit/go/test_charm.py::test_go_config[custom config] - KeyError: 'app' ERROR tests/unit/go/test_charm.py::test_metrics_config - KeyError: 'app' ================== 64 passed, 264 warnings, 3 errors in 1.40s ==================
Test coverage for a6b514b26083d68b0b22dd8e4c2a9ddd4f4ffdbb
Name Stmts Miss Branch BrPart Cover Missing
-------------------------------------------------------------------------------------------
paas_app_charmer/__init__.py 29 14 0 0 52% 13-14, 19-20, 26-27, 33-34, 40-41, 47-48, 54-55
paas_app_charmer/_gunicorn/__init__.py 0 0 0 0 100%
paas_app_charmer/_gunicorn/charm.py 15 0 0 0 100%
paas_app_charmer/_gunicorn/webserver.py 76 4 14 1 94% 162, 174-180
paas_app_charmer/_gunicorn/workload_config.py 8 0 0 0 100%
paas_app_charmer/_gunicorn/wsgi_app.py 18 0 0 0 100%
paas_app_charmer/app.py 120 0 48 2 99% 94->exit, 135->141
paas_app_charmer/charm.py 212 25 46 4 88% 32-33, 40-41, 190-191, 193-194, 215->exit, 227-231, 284-286, 339-340, 345, 350, 355, 365, 370, 375, 380, 385, 410
paas_app_charmer/charm_state.py 107 2 20 2 97% 184, 268
paas_app_charmer/charm_utils.py 23 0 0 0 100%
paas_app_charmer/database_migration.py 35 0 2 0 100%
paas_app_charmer/databases.py 25 2 11 1 92% 89-90
paas_app_charmer/django/__init__.py 2 0 0 0 100%
paas_app_charmer/django/charm.py 34 4 6 2 85% 44, 81, 96-97
paas_app_charmer/exceptions.py 5 0 0 0 100%
paas_app_charmer/flask/__init__.py 2 0 0 0 100%
paas_app_charmer/flask/charm.py 24 0 0 0 100%
paas_app_charmer/go/__init__.py 2 0 0 0 100%
paas_app_charmer/go/charm.py 26 8 0 0 69% 48, 53-56, 75, 83-84
paas_app_charmer/observability.py 16 0 4 1 95% 40->44
paas_app_charmer/secret_storage.py 50 3 16 5 88% 51, 55->54, 56->58, 86, 105
paas_app_charmer/utils.py 11 2 12 2 65% 29, 31
-------------------------------------------------------------------------------------------
TOTAL 840 64 179 20 91%
Static code analysis report
Run started:2024-08-20 14:07:34.647710
Test results:
No issues identified.
Code scanned:
Total lines of code: 1831
Total lines skipped (#nosec): 0
Total potential issues skipped due to specifically being disabled (e.g., #nosec BXXX): 0
Run metrics:
Total issues (by severity):
Undefined: 0
Low: 0
Medium: 0
High: 0
Total issues (by confidence):
Undefined: 0
Low: 0
Medium: 0
High: 0
Files skipped (0):
Applicable spec:
Overview
Rationale
Juju Events Changes
Module Changes
Library Changes
Checklist
src-docs
urgent
,trivial
,complex
)