canonical / paas-app-charmer

2 stars 2 forks source link

WIP go charmcraft #36

Closed javierdelapuente closed 1 month ago

javierdelapuente commented 1 month ago

Applicable spec:

Overview

Rationale

Juju Events Changes

Module Changes

Library Changes

Checklist

github-actions[bot] commented 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 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/unraisableexception.py", line 90, in pytest_runtest_setup 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 842, in pytest_runtest_setup yield from self._runtest_for(item, "setup") File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/logging.py", line 831, 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 874, in pytest_runtest_setup 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/threadexception.py", line 87, in pytest_runtest_setup 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 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 160, in pytest_runtest_setup item.session._setupstate.setup(item) File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/runner.py", line 514, in setup col.setup() File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/python.py", line 1630, in setup self._request._fillfixtures() File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/fixtures.py", line 696, in _fillfixtures item.funcargs[argname] = self.getfixturevalue(argname) File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/fixtures.py", line 531, in getfixturevalue fixturedef = self._get_active_fixturedef(argname) File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/fixtures.py", line 616, in _get_active_fixturedef fixturedef.execute(request=subrequest) File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/fixtures.py", line 1090, in execute result = ihook.pytest_fixture_setup(fixturedef=self, request=request) 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/setuponly.py", line 36, in pytest_fixture_setup 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/fixtures.py", line 1139, in pytest_fixture_setup result = call_fixture_func(fixturefunc, request, kwargs) File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/fixtures.py", line 890, in call_fixture_func fixture_result = next(generator) File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/tests/unit/go/conftest.py", line 32, in harness_fixture root = harness.get_filesystem_root(GO_CONTAINER_NAME) File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/ops/testing.py", line 1896, in get_filesystem_root return self._backend._pebble_clients[container_name].root KeyError: 'app' ERROR at setup of test_go_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/unraisableexception.py", line 90, in pytest_runtest_setup 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 842, in pytest_runtest_setup yield from self._runtest_for(item, "setup") File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/logging.py", line 831, 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 874, in pytest_runtest_setup 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/threadexception.py", line 87, in pytest_runtest_setup 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 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 160, in pytest_runtest_setup item.session._setupstate.setup(item) File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/runner.py", line 514, in setup col.setup() File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/python.py", line 1630, in setup self._request._fillfixtures() File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/fixtures.py", line 696, in _fillfixtures item.funcargs[argname] = self.getfixturevalue(argname) File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/fixtures.py", line 531, in getfixturevalue fixturedef = self._get_active_fixturedef(argname) File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/fixtures.py", line 616, in _get_active_fixturedef fixturedef.execute(request=subrequest) File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/fixtures.py", line 1090, in execute result = ihook.pytest_fixture_setup(fixturedef=self, request=request) 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/setuponly.py", line 36, in pytest_fixture_setup 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/fixtures.py", line 1139, in pytest_fixture_setup result = call_fixture_func(fixturefunc, request, kwargs) File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/fixtures.py", line 890, in call_fixture_func fixture_result = next(generator) File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/tests/unit/go/conftest.py", line 32, in harness_fixture root = harness.get_filesystem_root(GO_CONTAINER_NAME) File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/ops/testing.py", line 1896, in get_filesystem_root return self._backend._pebble_clients[container_name]._root KeyError: 'app' ____ ERROR at setup of test_metricsconfig ____ 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/unraisableexception.py", line 90, in pytest_runtest_setup 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 842, in pytest_runtest_setup yield from self._runtest_for(item, "setup") File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/logging.py", line 831, 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 874, in pytest_runtest_setup 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/threadexception.py", line 87, in pytest_runtest_setup 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 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 160, in pytest_runtest_setup item.session._setupstate.setup(item) File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/runner.py", line 514, in setup col.setup() File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/python.py", line 1630, in setup self._request._fillfixtures() File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/fixtures.py", line 696, in _fillfixtures item.funcargs[argname] = self.getfixturevalue(argname) File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/fixtures.py", line 531, in getfixturevalue fixturedef = self._get_active_fixturedef(argname) File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/fixtures.py", line 616, in _get_active_fixturedef fixturedef.execute(request=subrequest) File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/fixtures.py", line 1090, in execute result = ihook.pytest_fixture_setup(fixturedef=self, request=request) 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/setuponly.py", line 36, in pytest_fixture_setup 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/fixtures.py", line 1139, in pytest_fixture_setup result = call_fixture_func(fixturefunc, request, kwargs) File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/_pytest/fixtures.py", line 890, in call_fixture_func fixture_result = next(generator) File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/tests/unit/go/conftest.py", line 32, in harness_fixture root = harness.get_filesystem_root(GO_CONTAINER_NAME) File "/home/ubuntu/actions-runner/_work/paas-app-charmer/paas-app-charmer/.tox/unit/lib/python3.10/site-packages/ops/testing.py", line 1896, in get_filesystem_root return self._backend._pebble_clients[container_name]._root KeyError: 'app' =============================== 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: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 ==================

github-actions[bot] commented 1 month ago

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