Initial commit

This commit is contained in:
2026-02-06 23:52:26 +01:00
commit f1c539519e
14 changed files with 1320 additions and 0 deletions

29
tests/unit/test_charm.py Normal file
View File

@@ -0,0 +1,29 @@
# Copyright 2026 Valentin Haudiquet
# See LICENSE file for licensing details.
#
# To learn more about testing, see https://documentation.ubuntu.com/ops/latest/explanation/testing/
import pytest
from ops import testing
from charm import CharmedServerCharm
def mock_get_version():
"""Get a mock version string without executing the workload code."""
return "1.0.0"
def test_start(monkeypatch: pytest.MonkeyPatch):
"""Test that the charm has the correct state after handling the start event."""
# Arrange:
ctx = testing.Context(CharmedServerCharm)
monkeypatch.setattr("charm.charmed_server.get_version", mock_get_version)
monkeypatch.setattr("charm.charmed_server.is_installed", lambda: True)
monkeypatch.setattr("charm.charmed_server.ensure_config", lambda: False)
monkeypatch.setattr("charm.charmed_server.is_running", lambda: True)
# Act:
state_out = ctx.run(ctx.on.start(), testing.State())
# Assert:
assert state_out.workload_version is not None
assert state_out.unit_status == testing.ActiveStatus()