Skip to content
This repository was archived by the owner on Oct 16, 2024. It is now read-only.

Conversation

@jdkandersson
Copy link
Contributor

Applicable spec:

Overview

Rationale

Juju Events Changes

Module Changes

Library Changes

Checklist

@jdkandersson jdkandersson requested a review from a team as a code owner October 3, 2024 05:13
@github-actions
Copy link

github-actions bot commented Oct 3, 2024

Unit tests failed for 264b73a

```

============================= test session starts ==============================
platform linux -- Python 3.10.12, pytest-8.3.3, 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
plugins: anyio-4.6.0
collecting ... collected 82 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/django/test_charm.py::test_required_database_integration PASSED
tests/unit/fastapi/test_charm.py::test_fastapi_config[default] PASSED
tests/unit/fastapi/test_charm.py::test_fastapi_config[custom config] FAILED
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_rabbitmq_integration[rabbitmq-k8s version] PASSED
tests/unit/flask/test_charm.py::test_rabbitmq_integration[rabbitmq-server version] PASSED
tests/unit/flask/test_charm.py::test_rabbitmq_integration_with_relation_data_empty PASSED
tests/unit/flask/test_charm.py::test_rabbitmq_remove_integration 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_charm_state.py::test_secret_configuration PASSED
tests/unit/flask/test_charm_state.py::test_flask_secret_key_id_no_value PASSED
tests/unit/flask/test_charm_state.py::test_flask_secret_key_id_duplication 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_flask_env[secrets] 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/flask/test_webserver.py::test_enable_pebble_log_forwarding PASSED
tests/unit/flask/test_webserver.py::test_gunicorn_config_with_pebble_log_forwarding PASSED
tests/unit/flask/test_workers.py::test_worker PASSED
tests/unit/flask/test_workers.py::test_worker_multiple_units 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] FAILED
tests/unit/go/test_charm.py::test_go_config[default] PASSED
tests/unit/go/test_charm.py::test_go_config[custom config] PASSED
tests/unit/go/test_charm.py::test_metrics_config PASSED

=================================== FAILURES ===================================
______________________ test_fastapi_config[custom config] ______________________
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
lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/pluggy/_hooks.py", line 513, in call
return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/pluggy/_manager.py", line 120, in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/pluggy/_callers.py", line 139, in _multicall
raise exception.with_traceback(exception.traceback)
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/pluggy/_callers.py", line 122, in _multicall
teardown.throw(exception) # type: ignore[union-attr]
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/threadexception.py", line 92, in pytest_runtest_call
yield from thread_exception_runtest_hook()
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/threadexception.py", line 68, in thread_exception_runtest_hook
yield
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/pluggy/_callers.py", line 122, in _multicall
teardown.throw(exception) # type: ignore[union-attr]
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/unraisableexception.py", line 95, in pytest_runtest_call
yield from unraisable_exception_runtest_hook()
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/unraisableexception.py", line 70, in unraisable_exception_runtest_hook
yield
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/pluggy/_callers.py", line 122, in _multicall
teardown.throw(exception) # type: ignore[union-attr]
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/logging.py", line 846, in pytest_runtest_call
yield from self._runtest_for(item, "call")
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/logging.py", line 829, in _runtest_for
yield
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/pluggy/_callers.py", line 122, in _multicall
teardown.throw(exception) # type: ignore[union-attr]
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/capture.py", line 880, in pytest_runtest_call
return (yield)
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/pluggy/_callers.py", line 122, in _multicall
teardown.throw(exception) # type: ignore[union-attr]
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/skipping.py", line 257, in pytest_runtest_call
return (yield)
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/pluggy/_callers.py", line 103, in _multicall
res = hook_impl.function(*args)
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call
item.runtest()
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/python.py", line 1627, in runtest
self.ihook.pytest_pyfunc_call(pyfuncitem=self)
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/pluggy/_hooks.py", line 513, in call
return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/pluggy/_manager.py", line 120, in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/pluggy/_callers.py", line 139, in _multicall
raise exception.with_traceback(exception.traceback)
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/pluggy/_callers.py", line 103, in _multicall
res = hook_impl.function(*args)
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call
result = testfunction(**testargs)
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/tests/unit/fastapi/test_charm.py", line 94, in test_fastapi_config
assert fastapi_layer == {
AssertionError: assert {'command': '...enabled', ...} == {'command': '...enabled', ...}

Omitting 5 identical items, use -vv to show
Differing items:
{'environment': {'APP_BASE_URL': 'http://fastapi-k8s.None:9000', 'APP_POSTGRESQL_DB_CONNECT_STRING': 'postgresql://tes...ostgresql:5432/test-database', 'APP_POSTGRESQL_DB_FRAGMENT': '', 'APP_POSTGRESQL_DB_HOSTNAME': 'test-postgresql', ...}} != {'environment': {'APP_BASE_URL': 'http://fastapi-k8s.None:9000', 'APP_SECRET_KEY': 'foobar', 'APP_USER_DEFINED_CONFIG': 'userdefined', 'METRICS_PATH': '/othermetrics', ...}}

Full diff:
{...

...Full output truncated (41 lines hidden), use '-vv' to show
------------------------------ Captured log call -------------------------------
WARNING charms.grafana_k8s.v0.grafana_dashboard:grafana_dashboard.py:1036 Invalid Grafana dashboards folder at /home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/paas_app_charmer/fastapi/cos/grafana_dashboards: directory does not exist
INFO charms.data_platform_libs.v0.data_interfaces:data_interfaces.py:2855 database created at 2024-10-03 05:15:31.356838
_ test_go_environment_vars[set_env1-app_config1-framework_config1-integrations1-expected1] _
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
lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/pluggy/_hooks.py", line 513, in call
return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/pluggy/_manager.py", line 120, in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/pluggy/_callers.py", line 139, in _multicall
raise exception.with_traceback(exception.traceback)
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/pluggy/_callers.py", line 122, in _multicall
teardown.throw(exception) # type: ignore[union-attr]
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/threadexception.py", line 92, in pytest_runtest_call
yield from thread_exception_runtest_hook()
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/threadexception.py", line 68, in thread_exception_runtest_hook
yield
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/pluggy/_callers.py", line 122, in _multicall
teardown.throw(exception) # type: ignore[union-attr]
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/unraisableexception.py", line 95, in pytest_runtest_call
yield from unraisable_exception_runtest_hook()
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/unraisableexception.py", line 70, in unraisable_exception_runtest_hook
yield
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/pluggy/_callers.py", line 122, in _multicall
teardown.throw(exception) # type: ignore[union-attr]
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/logging.py", line 846, in pytest_runtest_call
yield from self._runtest_for(item, "call")
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/logging.py", line 829, in _runtest_for
yield
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/pluggy/_callers.py", line 122, in _multicall
teardown.throw(exception) # type: ignore[union-attr]
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/capture.py", line 880, in pytest_runtest_call
return (yield)
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/pluggy/_callers.py", line 122, in _multicall
teardown.throw(exception) # type: ignore[union-attr]
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/skipping.py", line 257, in pytest_runtest_call
return (yield)
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/pluggy/_callers.py", line 103, in _multicall
res = hook_impl.function(*args)
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/runner.py", line 174, in pytest_runtest_call
item.runtest()
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/python.py", line 1627, in runtest
self.ihook.pytest_pyfunc_call(pyfuncitem=self)
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/pluggy/_hooks.py", line 513, in call
return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/pluggy/_manager.py", line 120, in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/pluggy/_callers.py", line 139, in _multicall
raise exception.with_traceback(exception.traceback)
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/pluggy/_callers.py", line 103, in _multicall
res = hook_impl.function(*args)
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/python.py", line 159, in pytest_pyfunc_call
result = testfunction(**testargs)
File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/tests/unit/go/test_app.py", line 117, in test_go_environment_vars
assert env == expected
AssertionError: assert {'APP_BASE_UR...ervalue', ...} == {'APP_BASE_UR...ervalue', ...}

Omitting 8 identical items, use -vv to show
Left contains 20 more items:
{'APP_RABBITMQ_CONNECT_STRING': 'amqp://go-app:[email protected]/%2f',
'APP_RABBITMQ_FRAGMENT': '',
'APP_RABBITMQ_HOSTNAME': 'rabbitmq.example.com',
'APP_RABBITMQ_NETLOC': 'go-app:[email protected]',...

...Full output truncated (89 lines hidden), use '-vv' to show
=============================== warnings summary ===============================
examples/flask/lib/charms/traefik_k8s/v2/ingress.py:255
/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/examples/flask/lib/charms/traefik_k8s/v2/ingress.py:255: 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("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:331
/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/paas_app_charmer/charm_state.py:331: 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:36
/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/paas_app_charmer/django/charm.py:36: 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")

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
tests/unit/django/test_charm.py::test_required_database_integration
/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/tests/unit/django/conftest.py:92: PendingDeprecationWarning: Harness is deprecated; we recommend using state transition testing (previously known as 'Scenario') instead
harness = Harness(DjangoCharm, meta=meta)

tests/unit/django/test_charm.py: 40 warnings
tests/unit/fastapi/test_charm.py: 84 warnings
tests/unit/flask/test_charm.py: 178 warnings
tests/unit/flask/test_charm_state.py: 6 warnings
tests/unit/flask/test_workers.py: 21 warnings
tests/unit/go/test_app.py: 2 warnings
tests/unit/go/test_charm.py: 99 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
tests/unit/django/test_charm.py::test_required_database_integration
/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/fastapi/test_charm.py::test_fastapi_config[default]
tests/unit/fastapi/test_charm.py::test_fastapi_config[custom config]
/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/tests/unit/fastapi/conftest.py:30: PendingDeprecationWarning: Harness is deprecated; we recommend using state transition testing (previously known as 'Scenario') instead
harness = Harness(FastAPICharm)

tests/unit/flask/test_charm.py: 14 warnings
tests/unit/flask/test_database_migration.py: 6 warnings
tests/unit/flask/test_webserver.py: 5 warnings
tests/unit/flask/test_workers.py: 2 warnings
/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/tests/unit/flask/conftest.py:31: PendingDeprecationWarning: Harness is deprecated; we recommend using state transition testing (previously known as 'Scenario') instead
harness = Harness(FlaskCharm)

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(

tests/unit/go/test_charm.py::test_go_config[default]
tests/unit/go/test_charm.py::test_go_config[custom config]
tests/unit/go/test_charm.py::test_metrics_config
/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/tests/unit/go/conftest.py:30: PendingDeprecationWarning: Harness is deprecated; we recommend using state transition testing (previously known as 'Scenario') instead
harness = Harness(GoCharm)

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED tests/unit/fastapi/test_charm.py::test_fastapi_config[custom config] - AssertionError: assert {'command': '...enabled', ...} == {'command': '...en...
FAILED tests/unit/go/test_app.py::test_go_environment_vars[set_env1-app_config1-framework_config1-integrations1-expected1] - AssertionError: assert {'APP_BASE_UR...ervalue', ...} == {'APP_BASE_UR...er...
================== 2 failed, 80 passed, 587 warnings in 2.16s ==================

@github-actions
Copy link

github-actions bot commented Oct 3, 2024

Test coverage for 264b73a

Name                                            Stmts   Miss Branch BrPart  Cover   Missing
-------------------------------------------------------------------------------------------
paas_app_charmer/__init__.py                       32     17      0      0    47%   13-14, 19-20, 26-27, 33-37, 43-44, 50-51, 57-58
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            83      4     16      1    95%   175, 187-193
paas_app_charmer/_gunicorn/workload_config.py       8      0      0      0   100%
paas_app_charmer/_gunicorn/wsgi_app.py             16      0      0      0   100%
paas_app_charmer/app.py                           157      0     68      3    99%   110->exit, 167->173, 341->343
paas_app_charmer/charm.py                         240     26     60      3    90%   34-35, 42-43, 205, 215-216, 218-219, 248-252, 309-311, 372-373, 378, 383, 388, 398, 403, 408, 413, 418, 443
paas_app_charmer/charm_state.py                   107      2     20      2    97%   187, 277
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                   44      4     10      2    89%   48, 108, 123-124
paas_app_charmer/exceptions.py                      5      0      0      0   100%
paas_app_charmer/fastapi/__init__.py                2      0      0      0   100%
paas_app_charmer/fastapi/charm.py                  31      0      0      0   100%
paas_app_charmer/flask/__init__.py                  2      0      0      0   100%
paas_app_charmer/flask/charm.py                    26      0      0      0   100%
paas_app_charmer/framework.py                      23      4     12      2    77%   34, 47-49
paas_app_charmer/go/__init__.py                     2      0      0      0   100%
paas_app_charmer/go/charm.py                       28      0      0      0   100%
paas_app_charmer/observability.py                  24      3      8      1    81%   42->46, 73-77
paas_app_charmer/rabbitmq.py                       78      2     22      5    93%   117->exit, 122->exit, 157->exit, 159-160, 181->175
paas_app_charmer/secret_storage.py                 50      2     16      4    91%   55->54, 56->58, 86, 105
paas_app_charmer/utils.py                          44      7     22      5    76%   34, 36, 56-57, 75, 79, 104
-------------------------------------------------------------------------------------------
TOTAL                                            1102     73    267     29    92%

Static code analysis report

Run started:2024-10-03 05:15:44.261156

Test results:
  No issues identified.

Code scanned:
  Total lines of code: 2364
  Total lines skipped (#nosec): 1
  Total potential issues skipped due to specifically being disabled (e.g., #nosec BXXX): 2

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):

@jdkandersson
Copy link
Contributor Author

Superseded by #53

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant