Skip to content

Commit 732c94a

Browse files
authored
feat: Avoid patching private ops testing (#396)
* feat: Avoid patching private ops testing * feat: Bump single kernel lib * fix: deploy with trust * fix: upgrade lib
1 parent 4a98321 commit 732c94a

File tree

8 files changed

+8
-54
lines changed

8 files changed

+8
-54
lines changed

poetry.lock

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ requires-poetry = ">=2.0.0"
88

99
[tool.poetry.dependencies]
1010
python = "^3.10.12"
11-
mongo-charms-single-kernel = "~0.0.1"
11+
mongo-charms-single-kernel = "~0.0.4"
1212
dacite = "==1.8.0"
1313
ops = "~2.15.0"
1414
pymongo = "^4.7.3"
@@ -57,13 +57,13 @@ coverage = {extras = ["toml"], version = "^7.5.0"}
5757
pytest = "^8.1.1"
5858
pytest-mock = "*"
5959
parameterized = "^0.9.0"
60-
mongo-charms-single-kernel = "~0.0.1"
60+
mongo-charms-single-kernel = "~0.0.4"
6161
dacite = "==1.8.0"
6262

6363
[tool.poetry.group.integration.dependencies]
6464
allure-pytest = "^2.13.5"
6565
ops = "~2.15.0"
66-
mongo-charms-single-kernel = "~0.0.1"
66+
mongo-charms-single-kernel = "~0.0.4"
6767
dacite = "==1.8.0"
6868
tenacity = "^8.2.3"
6969
pymongo = "^4.7.3"

tests/integration/sharding_tests/test_mongos.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ async def test_build_and_deploy(ops_test: OpsTest) -> None:
4949
await ops_test.model.deploy(
5050
MONGOS_APP_NAME,
5151
channel="6/edge",
52+
trust=True,
5253
)
5354

5455
await ops_test.model.wait_for_idle(

tests/unit/helpers.py

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,27 +3,7 @@
33
# See LICENSE file for licensing details.
44

55
from pathlib import Path
6-
from typing import Callable
7-
from unittest.mock import patch
86

97
import yaml
108

119
METADATA = yaml.safe_load(Path("./metadata.yaml").read_text())
12-
13-
14-
def patch_network_get(private_address="10.1.157.116") -> Callable:
15-
def network_get(*args, **kwargs) -> dict:
16-
"""Patch for the not-yet-implemented testing backend needed for `bind_address`.
17-
18-
This patch decorator can be used for cases such as:
19-
self.model.get_binding(event.relation).network.bind_address
20-
"""
21-
return {
22-
"bind-addresses": [
23-
{
24-
"addresses": [{"value": private_address}],
25-
}
26-
]
27-
}
28-
29-
return patch("ops.testing._TestingModelBackend.network_get", network_get)

tests/unit/test_charm.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@
2323

2424
from charm import MongoDBK8sCharm
2525

26-
from .helpers import patch_network_get
27-
2826
PYMONGO_EXCEPTIONS = [
2927
(ConnectionFailure("error message"), ConnectionFailure),
3028
(ConfigurationError("error message"), ConfigurationError),
@@ -64,7 +62,6 @@ def patch_is_ready(mocker):
6462

6563
class TestCharm(unittest.TestCase):
6664
@patch("single_kernel_mongo.managers.mongodb_operator.get_charm_revision")
67-
@patch_network_get(private_address="1.1.1.1")
6865
def setUp(self, *unused):
6966
self.maxDiff = None
7067
self.harness = Harness(MongoDBK8sCharm)
@@ -710,7 +707,6 @@ def test_on_other_secret_changed(self, scope, connect_exporter):
710707

711708
connect_exporter.assert_not_called()
712709

713-
@patch_network_get(private_address="1.1.1.1")
714710
@patch("single_kernel_mongo.utils.mongo_connection.MongoConnection.set_user_password")
715711
@patch(
716712
"single_kernel_mongo.managers.config.MongoDBExporterConfigManager.configure_and_restart"
@@ -724,7 +720,6 @@ def test_connect_to_mongo_exporter_on_set_password(
724720
self.harness.run_action("set-password", {"username": "monitor"})
725721
connect_exporter.assert_called()
726722

727-
@patch_network_get(private_address="1.1.1.1")
728723
@patch("single_kernel_mongo.utils.mongo_connection.MongoConnection.set_user_password")
729724
@patch(
730725
"single_kernel_mongo.managers.config.MongoDBExporterConfigManager.configure_and_restart"
@@ -821,7 +816,6 @@ def test_set_password_provided(self, *unused):
821816
# verify app data is updated and results are reported to user
822817
self.assertEqual("canonical123", new_password)
823818

824-
@patch_network_get(private_address="1.1.1.1")
825819
@patch("single_kernel_mongo.managers.backups.BackupManager.get_status")
826820
def test_set_backup_password_pbm_busy(self, pbm_status):
827821
"""Tests changes to passwords fail when pbm is restoring/backing up."""

tests/unit/test_mongodb_backups.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@
1717

1818
from charm import MongoDBK8sCharm
1919

20-
from .helpers import patch_network_get
21-
2220
RELATION_NAME = "s3-credentials"
2321

2422

@@ -43,7 +41,6 @@ def patch_upgrades(monkeypatch):
4341

4442
class TestMongoBackups(unittest.TestCase):
4543
@patch("single_kernel_mongo.managers.mongodb_operator.get_charm_revision")
46-
@patch_network_get(private_address="1.1.1.1")
4744
def setUp(self, *unused):
4845
self.harness = Harness(MongoDBK8sCharm)
4946
self.harness.add_relation("database-peers", "database-peers")
@@ -319,7 +316,6 @@ def test_s3_credentials_no_db(self, defer):
319316
{"bucket": "hat"},
320317
)
321318

322-
@patch_network_get(private_address="1.1.1.1")
323319
@patch(
324320
"single_kernel_mongo.core.k8s_workload.KubernetesWorkload.active",
325321
return_value=True,
@@ -346,7 +342,6 @@ def test_s3_credentials_set_pbm_failure(self, _set_config_options, service):
346342

347343
self.assertTrue(isinstance(self.harness.charm.unit.status, BlockedStatus))
348344

349-
@patch_network_get(private_address="1.1.1.1")
350345
@patch("single_kernel_mongo.managers.backups.BackupManager.set_config_options")
351346
@patch("single_kernel_mongo.managers.backups.BackupManager.resync_config_options")
352347
@patch("ops.framework.EventBase.defer")
@@ -380,7 +375,6 @@ def test_s3_credentials_config_error(
380375
)
381376
self.assertTrue(isinstance(self.harness.charm.unit.status, BlockedStatus))
382377

383-
@patch_network_get(private_address="1.1.1.1")
384378
@patch("single_kernel_mongo.managers.backups.BackupManager.set_config_options")
385379
@patch("single_kernel_mongo.managers.backups.BackupManager.resync_config_options")
386380
@patch("ops.framework.EventBase.defer")
@@ -411,7 +405,6 @@ def test_s3_credentials_syncing(self, pbm_status, service, defer, resync, _set_c
411405
defer.assert_called()
412406
self.assertTrue(isinstance(self.harness.charm.unit.status, WaitingStatus))
413407

414-
@patch_network_get(private_address="1.1.1.1")
415408
@patch("single_kernel_mongo.managers.backups.BackupManager.set_config_options")
416409
@patch("single_kernel_mongo.managers.backups.BackupManager.resync_config_options")
417410
@patch("ops.framework.EventBase.defer")
@@ -445,7 +438,6 @@ def test_s3_credentials_pbm_busy(
445438
defer.assert_called()
446439
self.assertTrue(isinstance(self.harness.charm.unit.status, WaitingStatus))
447440

448-
@patch_network_get(private_address="1.1.1.1")
449441
@patch("single_kernel_mongo.managers.backups.BackupManager.set_config_options")
450442
@patch("single_kernel_mongo.managers.backups.BackupManager.resync_config_options")
451443
@patch("ops.framework.EventBase.defer")

tests/unit/test_mongodb_provider.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@
1212

1313
from charm import MongoDBK8sCharm
1414

15-
from .helpers import patch_network_get
16-
1715
PYMONGO_EXCEPTIONS = [
1816
(ConnectionFailure("error message"), ConnectionFailure),
1917
(ConfigurationError("error message"), ConfigurationError),
@@ -49,7 +47,6 @@ def patch_upgrades(monkeypatch):
4947

5048
class TestMongoProvider(unittest.TestCase):
5149
@patch("single_kernel_mongo.managers.mongodb_operator.get_charm_revision")
52-
@patch_network_get(private_address="1.1.1.1")
5350
def setUp(self, *unused):
5451
self.harness = Harness(MongoDBK8sCharm)
5552
mongo_resource = {
@@ -106,7 +103,6 @@ def test_relation_event_db_not_initialised(self, oversee_users, defer, *unused):
106103
oversee_users.assert_not_called()
107104
defer.assert_not_called()
108105

109-
@patch_network_get(private_address="1.1.1.1")
110106
@patch("single_kernel_mongo.managers.mongodb_operator.get_charm_revision")
111107
@patch("ops.framework.EventBase.defer")
112108
@patch("single_kernel_mongo.managers.mongo.MongoManager.reconcile_mongo_users_and_dbs")
@@ -131,7 +127,6 @@ def test_relation_event_oversee_users_mongo_failure(self, oversee_users, defer,
131127
defer.assert_called()
132128

133129
# oversee_users raises AssertionError when unable to attain users from relation
134-
@patch_network_get(private_address="1.1.1.1")
135130
@patch("single_kernel_mongo.managers.mongodb_operator.get_charm_revision")
136131
@patch("ops.framework.EventBase.defer")
137132
@patch("single_kernel_mongo.managers.mongo.MongoManager.reconcile_mongo_users_and_dbs")
@@ -156,7 +151,6 @@ def test_relation_event_oversee_users_fails_to_get_relation(
156151
else:
157152
self.harness.remove_relation_unit(relation_id, "consumer/0")
158153

159-
@patch_network_get(private_address="1.1.1.1")
160154
@patch("single_kernel_mongo.utils.mongo_connection.MongoConnection.user_exists")
161155
def test_oversee_users_get_users_failure(self, mock_user_exists):
162156
"""Verifies that when unable to retrieve users from mongod an exception is raised."""
@@ -178,7 +172,6 @@ def test_oversee_users_get_users_failure(self, mock_user_exists):
178172
relation_changed=True,
179173
)
180174

181-
@patch_network_get(private_address="1.1.1.1")
182175
@patch(
183176
"single_kernel_mongo.utils.mongo_connection.MongoConnection.user_exists",
184177
return_value=False,
@@ -209,7 +202,6 @@ def test_oversee_users_create_user_failure(self, set_credentials, create_user, u
209202
)
210203
set_credentials.assert_not_called()
211204

212-
@patch_network_get(private_address="1.1.1.1")
213205
@patch("single_kernel_mongo.managers.mongo.MongoManager.add_user")
214206
@patch("single_kernel_mongo.managers.mongo.MongoManager.update_user")
215207
@patch("single_kernel_mongo.managers.mongo.MongoManager.remove_user")
@@ -231,7 +223,6 @@ def test_oversee_users_no_auto_delete(self, drop_db, *unused):
231223
)
232224
drop_db.assert_not_called()
233225

234-
@patch_network_get(private_address="1.1.1.1")
235226
@patch("single_kernel_mongo.managers.mongo.MongoManager.add_user")
236227
@patch("single_kernel_mongo.managers.mongo.MongoManager.update_user")
237228
@patch("single_kernel_mongo.managers.mongo.MongoManager.remove_user")
@@ -269,7 +260,6 @@ def test_oversee_users_mongo_databases_failure(self, drop_db, get_db, *unused):
269260
["database", True, False],
270261
]
271262
)
272-
@patch_network_get(private_address="1.1.1.1")
273263
@patch(
274264
"single_kernel_mongo.lib.charms.data_platform_libs.v0.data_interfaces.DatabaseProviderData.set_credentials"
275265
)

tests/unit/test_upgrade.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@
1919

2020
from charm import MongoDBK8sCharm
2121

22-
from .helpers import patch_network_get
23-
2422

2523
@pytest.fixture(autouse=True)
2624
def patch_upgrades(monkeypatch):
@@ -43,7 +41,6 @@ def patch_upgrades(monkeypatch):
4341

4442
class TestUpgrades(unittest.TestCase):
4543
@patch("single_kernel_mongo.managers.mongodb_operator.get_charm_revision")
46-
@patch_network_get(private_address="1.1.1.1")
4744
def setUp(self, *unused):
4845
self.harness = Harness(MongoDBK8sCharm)
4946
self.addCleanup(self.harness.cleanup)

0 commit comments

Comments
 (0)