Skip to content

Commit be8663d

Browse files
committed
Fix unit tests.
1 parent 658ac3b commit be8663d

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

tests/unit/test_charm.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,21 @@
1010

1111
from charm import CassandraCharm
1212
from core.state import PEER_RELATION
13+
from managers.config import ConfigManager
1314

1415
BOOTSTRAP_RELATION = "bootstrap"
16+
PEER_SECRET = "cassandra-peers.cassandra.app"
17+
18+
# TODO: add start change password unit test
1519

1620

1721
def test_start_leader():
1822
"""Leader should render all required configs and start workload."""
1923
ctx = testing.Context(CassandraCharm)
2024
relation = testing.PeerRelation(id=1, endpoint=PEER_RELATION)
2125
bootstrap_relation = testing.PeerRelation(id=2, endpoint=BOOTSTRAP_RELATION)
22-
state = testing.State(leader=True, relations={relation, bootstrap_relation})
26+
secret = testing.Secret(label=PEER_SECRET, tracked_content={"cassandra-password": "ua"})
27+
state = testing.State(leader=True, relations={relation, bootstrap_relation}, secrets={secret})
2328

2429
with (
2530
patch("managers.config.ConfigManager.render_env") as render_env,
@@ -57,7 +62,8 @@ def test_start_subordinate_only_after_leader_active():
5762
relation = testing.PeerRelation(
5863
id=1, endpoint=PEER_RELATION, local_app_data={"cluster_state": "active"}
5964
)
60-
state = testing.State(leader=False, relations={relation})
65+
secret = testing.Secret(label=PEER_SECRET, tracked_content={"cassandra-password": "ua"})
66+
state = testing.State(leader=False, relations={relation}, secrets={secret})
6167

6268
state = ctx.run(ctx.on.start(), state)
6369
bootstrap.assert_called_once()
@@ -109,14 +115,16 @@ def test_config_changed():
109115
state = testing.State(leader=True, relations={relation, bootstrap_relation})
110116
with (
111117
patch("managers.config.ConfigManager.render_env") as render_env,
118+
patch("managers.config.ConfigManager.render_cassandra_config") as render_cassandra_config,
112119
patch("charm.CassandraWorkload") as workload,
113120
patch(
114121
"managers.cluster.ClusterManager.is_healthy",
115122
new_callable=PropertyMock(return_value=True),
116123
),
117124
):
118125
state = ctx.run(ctx.on.config_changed(), state)
119-
render_env.assert_called()
126+
render_env.assert_not_called()
127+
render_cassandra_config.assert_not_called()
120128
workload.return_value.restart.assert_not_called()
121129

122130
relation = testing.PeerRelation(
@@ -127,4 +135,5 @@ def test_config_changed():
127135
render_env.reset_mock()
128136
state = ctx.run(ctx.on.config_changed(), state)
129137
render_env.assert_called()
138+
render_cassandra_config.assert_called()
130139
workload.return_value.restart.assert_called_once()

tests/unit/test_config.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@
1212
def test_render_env_preserves_existing_vars():
1313
"""`render_env` should preserve existing environment variables."""
1414
workload = MagicMock(cassandra_paths=MagicMock(env=MagicMock()))
15-
config_manager = ConfigManager(workload=workload, cluster_name="", listen_address="", seeds=[])
15+
config_manager = ConfigManager(
16+
workload=workload, cluster_name="", listen_address="", seeds=[], authentication=False
17+
)
1618

1719
workload.cassandra_paths.env.read_text.return_value = (
1820
"EXTRA_VAR=extra_value\nPATH=/custom/path\n"

0 commit comments

Comments
 (0)