Remove pypi mock package for tests
'mock' is built in to python as unittest.mock since python 3.3. The mock package on pypi is a backport, and not required here. The test code throughout this repo used a mix of unittest.mock and the mock package. This makes it consistently unittest.mock now, and makes the import styles consistent too. Change-Id: I643247ac4061c095b327a73cba75a1fa67f1c32e
This commit is contained in:
parent
d0cddbeb4c
commit
365aed9a21
@ -17,13 +17,13 @@
|
||||
"""Unit tests for Cinder Ceph operator charm class."""
|
||||
|
||||
import json
|
||||
|
||||
import charm
|
||||
import ops_sunbeam.test_utils as test_utils
|
||||
from mock import (
|
||||
from unittest.mock import (
|
||||
MagicMock,
|
||||
patch,
|
||||
)
|
||||
|
||||
import charm
|
||||
import ops_sunbeam.test_utils as test_utils
|
||||
from ops.testing import (
|
||||
Harness,
|
||||
)
|
||||
|
@ -16,12 +16,13 @@
|
||||
|
||||
"""Tests for glance charm."""
|
||||
|
||||
import charm
|
||||
import ops_sunbeam.test_utils as test_utils
|
||||
from mock import (
|
||||
from unittest.mock import (
|
||||
patch,
|
||||
)
|
||||
|
||||
import charm
|
||||
import ops_sunbeam.test_utils as test_utils
|
||||
|
||||
|
||||
class _GlanceOperatorCharm(charm.GlanceOperatorCharm):
|
||||
def __init__(self, framework):
|
||||
|
@ -16,12 +16,13 @@
|
||||
|
||||
"""Tests for gnocchi charm."""
|
||||
|
||||
import charm
|
||||
import ops_sunbeam.test_utils as test_utils
|
||||
from mock import (
|
||||
from unittest.mock import (
|
||||
patch,
|
||||
)
|
||||
|
||||
import charm
|
||||
import ops_sunbeam.test_utils as test_utils
|
||||
|
||||
|
||||
class _GnocchiCephOperatorCharm(charm.GnocchiCephOperatorCharm):
|
||||
def __init__(self, framework):
|
||||
|
@ -16,8 +16,11 @@
|
||||
|
||||
"""Unit tests for Horizon operator."""
|
||||
|
||||
from unittest.mock import (
|
||||
MagicMock,
|
||||
)
|
||||
|
||||
import charm
|
||||
import mock
|
||||
import ops_sunbeam.test_utils as test_utils
|
||||
|
||||
|
||||
@ -107,7 +110,7 @@ class TestHorizonOperatorCharm(test_utils.CharmTestCase):
|
||||
|
||||
def test_get_dashboard_url_action(self):
|
||||
"""Test admin account action."""
|
||||
action_event = mock.MagicMock()
|
||||
action_event = MagicMock()
|
||||
self.harness.charm._get_dashboard_url_action(action_event)
|
||||
action_event.set_results.assert_called_with(
|
||||
{"url": "http://dashboard.juju:80"}
|
||||
|
@ -22,10 +22,10 @@ import textwrap
|
||||
from unittest.mock import (
|
||||
ANY,
|
||||
MagicMock,
|
||||
call,
|
||||
)
|
||||
|
||||
import charm
|
||||
import mock
|
||||
import ops_sunbeam.test_utils as test_utils
|
||||
|
||||
|
||||
@ -116,7 +116,7 @@ class TestKeystoneOperatorCharm(test_utils.CharmTestCase):
|
||||
|
||||
admin_role_mock = _create_mock("arole_name", "arole_id")
|
||||
|
||||
km_mock = mock.MagicMock()
|
||||
km_mock = MagicMock()
|
||||
km_mock.ksclient.show_domain.side_effect = _get_domain_side_effect
|
||||
km_mock.ksclient.show_project.return_value = admin_project_mock
|
||||
km_mock.ksclient.show_user.return_value = admin_user_mock
|
||||
@ -323,11 +323,11 @@ class TestKeystoneOperatorCharm(test_utils.CharmTestCase):
|
||||
self.assertEqual(self.km_mock.write_keys.call_count, 2)
|
||||
self.km_mock.write_keys.assert_has_calls(
|
||||
[
|
||||
mock.call(
|
||||
call(
|
||||
key_repository="/etc/keystone/fernet-keys",
|
||||
keys=updated_fernet_keys,
|
||||
),
|
||||
mock.call(
|
||||
call(
|
||||
key_repository="/etc/keystone/credential-keys",
|
||||
keys=updated_fernet_keys,
|
||||
),
|
||||
@ -338,7 +338,7 @@ class TestKeystoneOperatorCharm(test_utils.CharmTestCase):
|
||||
self,
|
||||
):
|
||||
"""Test peer_relation_changed when fernet keys and secret have same content."""
|
||||
secret_mock = mock.MagicMock()
|
||||
secret_mock = MagicMock()
|
||||
secret_mock.id = "test-secret-id"
|
||||
secret_mock.get_content.return_value = self.km_mock.read_keys()
|
||||
self.harness.model.app.add_secret = MagicMock()
|
||||
|
@ -17,12 +17,12 @@
|
||||
"""Unit tests for Magnum operator."""
|
||||
|
||||
import json
|
||||
from unittest.mock import (
|
||||
Mock,
|
||||
)
|
||||
|
||||
import charm
|
||||
import ops_sunbeam.test_utils as test_utils
|
||||
from mock import (
|
||||
Mock,
|
||||
)
|
||||
from ops.testing import (
|
||||
Harness,
|
||||
)
|
||||
|
@ -17,12 +17,12 @@
|
||||
"""Unit tests for Openstack Exporter operator."""
|
||||
|
||||
import json
|
||||
from unittest.mock import (
|
||||
Mock,
|
||||
)
|
||||
|
||||
import charm
|
||||
import ops_sunbeam.test_utils as test_utils
|
||||
from mock import (
|
||||
Mock,
|
||||
)
|
||||
from ops.testing import (
|
||||
Harness,
|
||||
)
|
||||
|
@ -16,8 +16,8 @@
|
||||
|
||||
import base64
|
||||
import json
|
||||
from unittest import (
|
||||
mock,
|
||||
from unittest.mock import (
|
||||
MagicMock,
|
||||
)
|
||||
|
||||
import charm
|
||||
@ -98,7 +98,7 @@ class TestCharm(test_utils.CharmTestCase):
|
||||
def test_mandatory_relations(self):
|
||||
"""Test all the charms relations."""
|
||||
self.get_local_ip_by_default_route.return_value = "10.0.0.10"
|
||||
hypervisor_snap_mock = mock.MagicMock()
|
||||
hypervisor_snap_mock = MagicMock()
|
||||
hypervisor_snap_mock.present = False
|
||||
self.snap.SnapState.Latest = "latest"
|
||||
self.snap.SnapCache.return_value = {
|
||||
@ -191,7 +191,7 @@ class TestCharm(test_utils.CharmTestCase):
|
||||
)
|
||||
|
||||
self.get_local_ip_by_default_route.return_value = "10.0.0.10"
|
||||
hypervisor_snap_mock = mock.MagicMock()
|
||||
hypervisor_snap_mock = MagicMock()
|
||||
hypervisor_snap_mock.present = False
|
||||
self.snap.SnapState.Latest = "latest"
|
||||
self.snap.SnapCache.return_value = {
|
||||
|
@ -16,8 +16,11 @@
|
||||
|
||||
"""Tests for OVN central charm."""
|
||||
|
||||
from unittest.mock import (
|
||||
MagicMock,
|
||||
)
|
||||
|
||||
import charm
|
||||
import mock
|
||||
import ops_sunbeam.test_utils as test_utils
|
||||
|
||||
|
||||
@ -38,11 +41,11 @@ class _OVNCentralOperatorCharm(charm.OVNCentralOperatorCharm):
|
||||
|
||||
def cluster_status(self, db, cmd_executor):
|
||||
if db == "ovnnb_db":
|
||||
nb_mock = mock.MagicMock()
|
||||
nb_mock = MagicMock()
|
||||
nb_mock.cluster_id = "nb_id"
|
||||
return nb_mock
|
||||
if db == "ovnsb_db":
|
||||
sb_mock = mock.MagicMock()
|
||||
sb_mock = MagicMock()
|
||||
sb_mock.cluster_id = "sb_id"
|
||||
return sb_mock
|
||||
|
||||
|
@ -6,15 +6,15 @@
|
||||
"""Unit tests."""
|
||||
|
||||
import pathlib
|
||||
from unittest.mock import (
|
||||
patch,
|
||||
)
|
||||
|
||||
import charm
|
||||
import ops
|
||||
import ops.testing as testing
|
||||
import ops_sunbeam.test_utils as test_utils
|
||||
import yaml
|
||||
from mock import (
|
||||
patch,
|
||||
)
|
||||
|
||||
|
||||
class _SunbeamClusterdCharm(charm.SunbeamClusterdCharm):
|
||||
|
@ -19,11 +19,12 @@
|
||||
import json
|
||||
import pathlib
|
||||
from unittest.mock import (
|
||||
MagicMock,
|
||||
Mock,
|
||||
patch,
|
||||
)
|
||||
|
||||
import charm
|
||||
import mock
|
||||
import ops_sunbeam.test_utils as test_utils
|
||||
import yaml
|
||||
from utils.constants import (
|
||||
@ -120,8 +121,8 @@ class TestTempestOperatorCharm(test_utils.CharmTestCase):
|
||||
"""Add identity resource relation."""
|
||||
rel_id = harness.add_relation("identity-ops", "keystone")
|
||||
harness.add_relation_unit(rel_id, "keystone/0")
|
||||
harness.charm.user_id_ops.callback_f = mock.Mock()
|
||||
harness.charm.user_id_ops.get_user_credential = mock.Mock(
|
||||
harness.charm.user_id_ops.callback_f = Mock()
|
||||
harness.charm.user_id_ops.get_user_credential = Mock(
|
||||
return_value={
|
||||
"username": "tempest",
|
||||
"password": "password",
|
||||
@ -172,14 +173,14 @@ class TestTempestOperatorCharm(test_utils.CharmTestCase):
|
||||
"""Add logging relation."""
|
||||
rel_id = harness.add_relation("logging", "loki")
|
||||
harness.add_relation_unit(rel_id, "loki/0")
|
||||
harness.charm.loki.interface = mock.Mock()
|
||||
harness.charm.loki.interface = Mock()
|
||||
return rel_id
|
||||
|
||||
def add_grafana_dashboard_relation(self, harness):
|
||||
"""Add grafana dashboard relation."""
|
||||
rel_id = harness.add_relation("grafana_dashboard", "grafana")
|
||||
harness.add_relation_unit(rel_id, "grafana/0")
|
||||
harness.charm.grafana.interface = mock.Mock()
|
||||
harness.charm.grafana.interface = Mock()
|
||||
return rel_id
|
||||
|
||||
def test_pebble_ready_handler(self):
|
||||
@ -197,8 +198,8 @@ class TestTempestOperatorCharm(test_utils.CharmTestCase):
|
||||
self.harness
|
||||
)
|
||||
|
||||
self.harness.charm.set_tempest_ready = mock.Mock()
|
||||
self.harness.charm.is_tempest_ready = mock.Mock(return_value=True)
|
||||
self.harness.charm.set_tempest_ready = Mock()
|
||||
self.harness.charm.is_tempest_ready = Mock(return_value=True)
|
||||
|
||||
self.harness.update_config({"schedule": "0 0 */7 * *"})
|
||||
|
||||
@ -225,7 +226,7 @@ class TestTempestOperatorCharm(test_utils.CharmTestCase):
|
||||
self.add_grafana_dashboard_relation(self.harness)
|
||||
|
||||
# schedule is disabled if it's not ready, so set it ready for testing
|
||||
self.harness.charm.is_tempest_ready = mock.Mock(return_value=True)
|
||||
self.harness.charm.is_tempest_ready = Mock(return_value=True)
|
||||
|
||||
# ok schedule
|
||||
schedule = "0 0 */7 * *"
|
||||
@ -245,7 +246,7 @@ class TestTempestOperatorCharm(test_utils.CharmTestCase):
|
||||
self.assertEqual(self.harness.charm.contexts().tempest.schedule, "")
|
||||
|
||||
# tempest init not ready
|
||||
self.harness.charm.is_tempest_ready = mock.Mock(return_value=False)
|
||||
self.harness.charm.is_tempest_ready = Mock(return_value=False)
|
||||
schedule = "0 0 */7 * *"
|
||||
self.harness.update_config({"schedule": schedule})
|
||||
self.assertEqual(self.harness.charm.contexts().tempest.schedule, "")
|
||||
@ -257,7 +258,7 @@ class TestTempestOperatorCharm(test_utils.CharmTestCase):
|
||||
self.add_identity_ops_relation(self.harness)
|
||||
self.add_grafana_dashboard_relation(self.harness)
|
||||
|
||||
action_event = mock.Mock()
|
||||
action_event = Mock()
|
||||
action_event.params = {
|
||||
"serial": False,
|
||||
"regex": "test(",
|
||||
@ -278,15 +279,15 @@ class TestTempestOperatorCharm(test_utils.CharmTestCase):
|
||||
self.add_identity_ops_relation(self.harness)
|
||||
self.add_grafana_dashboard_relation(self.harness)
|
||||
|
||||
file1 = mock.Mock()
|
||||
file1 = Mock()
|
||||
file1.name = "file_1"
|
||||
file2 = mock.Mock()
|
||||
file2 = Mock()
|
||||
file2.name = "file_2"
|
||||
self.harness.charm.pebble_handler().container.list_files = mock.Mock(
|
||||
self.harness.charm.pebble_handler().container.list_files = Mock(
|
||||
return_value=[file1, file2]
|
||||
)
|
||||
|
||||
action_event = mock.Mock()
|
||||
action_event = Mock()
|
||||
action_event.params = {
|
||||
"serial": False,
|
||||
"regex": "",
|
||||
@ -307,17 +308,17 @@ class TestTempestOperatorCharm(test_utils.CharmTestCase):
|
||||
self.add_identity_ops_relation(self.harness)
|
||||
self.add_grafana_dashboard_relation(self.harness)
|
||||
|
||||
file1 = mock.Mock()
|
||||
file1 = Mock()
|
||||
file1.name = "file_1"
|
||||
file2 = mock.Mock()
|
||||
file2 = Mock()
|
||||
file2.name = "file_2"
|
||||
self.harness.charm.pebble_handler().container.list_files = mock.Mock(
|
||||
self.harness.charm.pebble_handler().container.list_files = Mock(
|
||||
return_value=[file1, file2]
|
||||
)
|
||||
exec_mock = mock.Mock()
|
||||
exec_mock = Mock()
|
||||
self.harness.charm.pebble_handler().execute = exec_mock
|
||||
|
||||
action_event = mock.Mock()
|
||||
action_event = Mock()
|
||||
action_event.params = {
|
||||
"serial": False,
|
||||
"regex": "smoke",
|
||||
@ -342,17 +343,17 @@ class TestTempestOperatorCharm(test_utils.CharmTestCase):
|
||||
self.add_identity_ops_relation(self.harness)
|
||||
self.add_grafana_dashboard_relation(self.harness)
|
||||
|
||||
file1 = mock.Mock()
|
||||
file1 = Mock()
|
||||
file1.name = "file_1"
|
||||
file2 = mock.Mock()
|
||||
file2 = Mock()
|
||||
file2.name = "file_2"
|
||||
self.harness.charm.pebble_handler().container.list_files = mock.Mock(
|
||||
self.harness.charm.pebble_handler().container.list_files = Mock(
|
||||
return_value=[file1, file2]
|
||||
)
|
||||
exec_mock = mock.Mock()
|
||||
exec_mock = Mock()
|
||||
self.harness.charm.pebble_handler().execute = exec_mock
|
||||
|
||||
action_event = mock.Mock()
|
||||
action_event = Mock()
|
||||
action_event.params = {
|
||||
"serial": True,
|
||||
"regex": "re1 re2",
|
||||
@ -386,10 +387,10 @@ class TestTempestOperatorCharm(test_utils.CharmTestCase):
|
||||
self.add_identity_ops_relation(self.harness)
|
||||
self.add_grafana_dashboard_relation(self.harness)
|
||||
|
||||
exec_mock = mock.Mock()
|
||||
exec_mock = Mock()
|
||||
self.harness.charm.pebble_handler().execute = exec_mock
|
||||
|
||||
action_event = mock.Mock()
|
||||
action_event = Mock()
|
||||
action_event.params = {
|
||||
"serial": True,
|
||||
"regex": "",
|
||||
@ -411,15 +412,15 @@ class TestTempestOperatorCharm(test_utils.CharmTestCase):
|
||||
self.add_identity_ops_relation(self.harness)
|
||||
self.add_grafana_dashboard_relation(self.harness)
|
||||
|
||||
file1 = mock.Mock()
|
||||
file1 = Mock()
|
||||
file1.name = "file_1"
|
||||
file2 = mock.Mock()
|
||||
file2 = Mock()
|
||||
file2.name = "file_2"
|
||||
self.harness.charm.pebble_handler().container.list_files = mock.Mock(
|
||||
self.harness.charm.pebble_handler().container.list_files = Mock(
|
||||
return_value=[file1, file2]
|
||||
)
|
||||
|
||||
action_event = mock.Mock()
|
||||
action_event = Mock()
|
||||
self.harness.charm._on_get_lists_action(action_event)
|
||||
action_event.fail.assert_not_called()
|
||||
|
||||
@ -430,15 +431,15 @@ class TestTempestOperatorCharm(test_utils.CharmTestCase):
|
||||
self.add_identity_ops_relation(self.harness)
|
||||
self.add_grafana_dashboard_relation(self.harness)
|
||||
|
||||
file1 = mock.Mock()
|
||||
file1 = Mock()
|
||||
file1.name = "file_1"
|
||||
file2 = mock.Mock()
|
||||
file2 = Mock()
|
||||
file2.name = "file_2"
|
||||
self.harness.charm.unit.get_container(CONTAINER).can_connect = (
|
||||
mock.Mock(return_value=False)
|
||||
self.harness.charm.unit.get_container(CONTAINER).can_connect = Mock(
|
||||
return_value=False
|
||||
)
|
||||
|
||||
action_event = mock.Mock()
|
||||
action_event = Mock()
|
||||
self.harness.charm._on_get_lists_action(action_event)
|
||||
action_event.fail.assert_called_with("pebble is not ready")
|
||||
|
||||
@ -449,7 +450,7 @@ class TestTempestOperatorCharm(test_utils.CharmTestCase):
|
||||
self.add_identity_ops_relation(self.harness)
|
||||
self.add_grafana_dashboard_relation(self.harness)
|
||||
|
||||
self.harness.charm.is_tempest_ready = mock.Mock(return_value=True)
|
||||
self.harness.charm.is_tempest_ready = Mock(return_value=True)
|
||||
|
||||
# invalid schedule should make charm in blocked status
|
||||
self.harness.update_config({"schedule": "* *"})
|
||||
@ -468,15 +469,15 @@ class TestTempestOperatorCharm(test_utils.CharmTestCase):
|
||||
self.add_identity_ops_relation(self.harness)
|
||||
self.add_grafana_dashboard_relation(self.harness)
|
||||
|
||||
self.harness.charm.peers = mock.Mock()
|
||||
self.harness.charm.peers.interface.peers_rel.data = mock.MagicMock()
|
||||
self.harness.charm.peers = Mock()
|
||||
self.harness.charm.peers.interface.peers_rel.data = MagicMock()
|
||||
self.harness.charm.peers.interface.peers_rel.data.__getitem__.return_value = {
|
||||
TEMPEST_READY_KEY: ""
|
||||
}
|
||||
|
||||
mock_pebble = mock.Mock()
|
||||
mock_pebble.init_tempest = mock.Mock(side_effect=RuntimeError)
|
||||
self.harness.charm.pebble_handler = mock.Mock(return_value=mock_pebble)
|
||||
mock_pebble = Mock()
|
||||
mock_pebble.init_tempest = Mock(side_effect=RuntimeError)
|
||||
self.harness.charm.pebble_handler = Mock(return_value=mock_pebble)
|
||||
|
||||
self.harness.update_config({"schedule": "*/21 * * * *"})
|
||||
|
||||
@ -492,8 +493,8 @@ class TestTempestOperatorCharm(test_utils.CharmTestCase):
|
||||
self.add_identity_ops_relation(self.harness)
|
||||
self.add_grafana_dashboard_relation(self.harness)
|
||||
|
||||
self.harness.charm.peers = mock.Mock()
|
||||
self.harness.charm.peers.interface.peers_rel.data = mock.MagicMock()
|
||||
self.harness.charm.peers = Mock()
|
||||
self.harness.charm.peers.interface.peers_rel.data = MagicMock()
|
||||
self.harness.charm.peers.interface.peers_rel.data.__getitem__.return_value = {
|
||||
TEMPEST_READY_KEY: "true"
|
||||
}
|
||||
@ -507,8 +508,8 @@ class TestTempestOperatorCharm(test_utils.CharmTestCase):
|
||||
self.add_identity_ops_relation(self.harness)
|
||||
self.add_grafana_dashboard_relation(self.harness)
|
||||
|
||||
self.harness.charm.peers = mock.Mock()
|
||||
self.harness.charm.peers.interface.peers_rel.data = mock.MagicMock()
|
||||
self.harness.charm.peers = Mock()
|
||||
self.harness.charm.peers.interface.peers_rel.data = MagicMock()
|
||||
self.harness.charm.peers.interface.peers_rel.data.__getitem__.return_value = {
|
||||
TEMPEST_READY_KEY: ""
|
||||
}
|
||||
@ -522,13 +523,13 @@ class TestTempestOperatorCharm(test_utils.CharmTestCase):
|
||||
self.add_identity_ops_relation(self.harness)
|
||||
self.add_grafana_dashboard_relation(self.harness)
|
||||
|
||||
self.harness.charm.peers = mock.Mock()
|
||||
self.harness.charm.peers = Mock()
|
||||
self.harness.charm.set_tempest_ready(True)
|
||||
self.harness.charm.peers.set_unit_data.assert_called_with(
|
||||
{TEMPEST_READY_KEY: "true"}
|
||||
)
|
||||
|
||||
self.harness.charm.peers = mock.Mock()
|
||||
self.harness.charm.peers = Mock()
|
||||
self.harness.charm.set_tempest_ready(False)
|
||||
self.harness.charm.peers.set_unit_data.assert_called_with(
|
||||
{TEMPEST_READY_KEY: ""}
|
||||
@ -540,11 +541,11 @@ class TestTempestOperatorCharm(test_utils.CharmTestCase):
|
||||
self.add_identity_ops_relation(self.harness)
|
||||
|
||||
# tempest init not run yet, pebble init tempest fails
|
||||
pebble_mock = mock.Mock()
|
||||
pebble_mock.init_tempest = mock.Mock(side_effect=RuntimeError)
|
||||
self.harness.charm.pebble_handler = mock.Mock(return_value=pebble_mock)
|
||||
self.harness.charm.is_tempest_ready = mock.Mock(return_value=False)
|
||||
self.harness.charm.set_tempest_ready = mock.Mock()
|
||||
pebble_mock = Mock()
|
||||
pebble_mock.init_tempest = Mock(side_effect=RuntimeError)
|
||||
self.harness.charm.pebble_handler = Mock(return_value=pebble_mock)
|
||||
self.harness.charm.is_tempest_ready = Mock(return_value=False)
|
||||
self.harness.charm.set_tempest_ready = Mock()
|
||||
|
||||
self.harness.charm.init_tempest()
|
||||
self.harness.charm.set_tempest_ready.assert_called_once_with(False)
|
||||
@ -555,11 +556,11 @@ class TestTempestOperatorCharm(test_utils.CharmTestCase):
|
||||
self.add_identity_ops_relation(self.harness)
|
||||
|
||||
# tempest init succeeds
|
||||
pebble_mock = mock.Mock()
|
||||
pebble_mock.init_tempest = mock.Mock()
|
||||
self.harness.charm.pebble_handler = mock.Mock(return_value=pebble_mock)
|
||||
self.harness.charm.is_tempest_ready = mock.Mock(return_value=False)
|
||||
self.harness.charm.set_tempest_ready = mock.Mock()
|
||||
pebble_mock = Mock()
|
||||
pebble_mock.init_tempest = Mock()
|
||||
self.harness.charm.pebble_handler = Mock(return_value=pebble_mock)
|
||||
self.harness.charm.is_tempest_ready = Mock(return_value=False)
|
||||
self.harness.charm.set_tempest_ready = Mock()
|
||||
|
||||
self.harness.charm.init_tempest()
|
||||
self.harness.charm.set_tempest_ready.assert_called_once_with(True)
|
||||
@ -569,11 +570,11 @@ class TestTempestOperatorCharm(test_utils.CharmTestCase):
|
||||
test_utils.set_all_pebbles_ready(self.harness)
|
||||
|
||||
# tempest init already run
|
||||
pebble_mock = mock.Mock()
|
||||
pebble_mock.init_tempest = mock.Mock()
|
||||
self.harness.charm.pebble_handler = mock.Mock(return_value=pebble_mock)
|
||||
self.harness.charm.is_tempest_ready = mock.Mock(return_value=True)
|
||||
self.harness.charm.set_tempest_ready = mock.Mock()
|
||||
pebble_mock = Mock()
|
||||
pebble_mock.init_tempest = Mock()
|
||||
self.harness.charm.pebble_handler = Mock(return_value=pebble_mock)
|
||||
self.harness.charm.is_tempest_ready = Mock(return_value=True)
|
||||
self.harness.charm.set_tempest_ready = Mock()
|
||||
|
||||
self.harness.charm.init_tempest()
|
||||
self.harness.charm.set_tempest_ready.assert_not_called()
|
||||
@ -582,8 +583,8 @@ class TestTempestOperatorCharm(test_utils.CharmTestCase):
|
||||
"""Test upgrade charm updates things as required."""
|
||||
test_utils.set_all_pebbles_ready(self.harness)
|
||||
|
||||
self.harness.charm.set_tempest_ready = mock.Mock()
|
||||
self.harness.charm._on_upgrade_charm(mock.Mock())
|
||||
self.harness.charm.set_tempest_ready = Mock()
|
||||
self.harness.charm._on_upgrade_charm(Mock())
|
||||
self.harness.charm.set_tempest_ready.assert_called_once_with(False)
|
||||
|
||||
def test_tempest_env_variant(self):
|
||||
@ -600,7 +601,7 @@ class TestTempestOperatorCharm(test_utils.CharmTestCase):
|
||||
test_utils.set_all_pebbles_ready(self.harness)
|
||||
identity_ops_rel_id = self.add_identity_ops_relation(self.harness)
|
||||
|
||||
self.harness.charm.set_tempest_ready = mock.Mock()
|
||||
self.harness.charm.set_tempest_ready = Mock()
|
||||
|
||||
self.harness.remove_relation(identity_ops_rel_id)
|
||||
|
||||
|
@ -28,14 +28,14 @@ from typing import (
|
||||
List,
|
||||
Optional,
|
||||
)
|
||||
|
||||
import ops
|
||||
from mock import (
|
||||
from unittest.mock import (
|
||||
MagicMock,
|
||||
Mock,
|
||||
patch,
|
||||
)
|
||||
|
||||
import ops
|
||||
|
||||
sys.path.append("lib") # noqa
|
||||
sys.path.append("src") # noqa
|
||||
|
||||
|
@ -15,8 +15,9 @@
|
||||
"""Test compound_status."""
|
||||
|
||||
import sys
|
||||
|
||||
import mock
|
||||
from unittest.mock import (
|
||||
Mock,
|
||||
)
|
||||
|
||||
sys.path.append("lib") # noqa
|
||||
sys.path.append("src") # noqa
|
||||
@ -64,7 +65,7 @@ class TestCompoundStatus(test_utils.CharmTestCase):
|
||||
status.set(WaitingStatus("test"))
|
||||
|
||||
# manually set the on_update hook and verify it is called
|
||||
on_update_mock = mock.Mock()
|
||||
on_update_mock = Mock()
|
||||
status.on_update = on_update_mock
|
||||
status.set(ActiveStatus("test"))
|
||||
on_update_mock.assert_called_once_with()
|
||||
|
@ -16,8 +16,10 @@
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
import mock
|
||||
from unittest.mock import (
|
||||
MagicMock,
|
||||
patch,
|
||||
)
|
||||
|
||||
sys.path.append("tests/lib") # noqa
|
||||
sys.path.append("src") # noqa
|
||||
@ -40,7 +42,7 @@ class TestOSBaseOperatorCharm(test_utils.CharmTestCase):
|
||||
"""Charm test class setup."""
|
||||
self.container_calls = test_utils.ContainerCalls()
|
||||
super().setUp(sunbeam_charm, self.PATCHES)
|
||||
self.mock_event = mock.MagicMock()
|
||||
self.mock_event = MagicMock()
|
||||
self.harness = test_utils.get_harness(
|
||||
test_charms.MyCharm,
|
||||
test_charms.CHARM_METADATA,
|
||||
@ -81,7 +83,7 @@ class TestOSBaseOperatorCharmK8S(test_utils.CharmTestCase):
|
||||
charm_config=test_charms.CHARM_CONFIG,
|
||||
initial_charm_config=test_charms.INITIAL_CHARM_CONFIG,
|
||||
)
|
||||
self.mock_event = mock.MagicMock()
|
||||
self.mock_event = MagicMock()
|
||||
self.harness.begin()
|
||||
self.addCleanup(self.harness.cleanup)
|
||||
|
||||
@ -124,7 +126,7 @@ class _TestOSBaseOperatorAPICharm(test_utils.CharmTestCase):
|
||||
self.container_calls = test_utils.ContainerCalls()
|
||||
|
||||
super().setUp(sunbeam_charm, self.PATCHES)
|
||||
self.mock_event = mock.MagicMock()
|
||||
self.mock_event = MagicMock()
|
||||
self.harness = test_utils.get_harness(
|
||||
charm_to_test,
|
||||
test_charms.API_CHARM_METADATA,
|
||||
@ -335,8 +337,8 @@ class TestOSBaseOperatorAPICharm(_TestOSBaseOperatorAPICharm):
|
||||
)
|
||||
self.assertEqual(self.harness.charm.public_url, "http://public-url:80")
|
||||
|
||||
@mock.patch("ops_sunbeam.charm.Client")
|
||||
def test_endpoint_urls_no_ingress(self, mock_client: mock.patch) -> None:
|
||||
@patch("ops_sunbeam.charm.Client")
|
||||
def test_endpoint_urls_no_ingress(self, mock_client: patch) -> None:
|
||||
"""Test public_url and internal_url with no ingress defined."""
|
||||
|
||||
class MockService:
|
||||
@ -345,7 +347,7 @@ class TestOSBaseOperatorAPICharm(_TestOSBaseOperatorAPICharm):
|
||||
def __init__(self) -> None:
|
||||
self.status = None
|
||||
|
||||
mock_client.return_value = mock.MagicMock()
|
||||
mock_client.return_value = MagicMock()
|
||||
mock_client.return_value.get.return_value = MockService()
|
||||
self.assertEqual(
|
||||
self.harness.charm.internal_url, "http://10.0.0.10:789"
|
||||
|
@ -19,9 +19,12 @@ from io import (
|
||||
BytesIO,
|
||||
TextIOWrapper,
|
||||
)
|
||||
from unittest.mock import (
|
||||
MagicMock,
|
||||
patch,
|
||||
)
|
||||
|
||||
import jinja2
|
||||
import mock
|
||||
|
||||
sys.path.append("lib") # noqa
|
||||
sys.path.append("src") # noqa
|
||||
@ -40,10 +43,10 @@ class TestTemplating(test_utils.CharmTestCase):
|
||||
"""Charm test class setup."""
|
||||
super().setUp(sunbeam_templating, self.PATCHES)
|
||||
|
||||
@mock.patch("jinja2.FileSystemLoader")
|
||||
@patch("jinja2.FileSystemLoader")
|
||||
def test_render(self, fs_loader: "jinja2.FileSystemLoader") -> None:
|
||||
"""Check rendering templates."""
|
||||
container_mock = mock.MagicMock()
|
||||
container_mock = MagicMock()
|
||||
config = sunbeam_core.ContainerConfigFile(
|
||||
"/tmp/testfile.txt", "myuser", "mygrp"
|
||||
)
|
||||
@ -61,12 +64,12 @@ class TestTemplating(test_utils.CharmTestCase):
|
||||
permissions=None,
|
||||
)
|
||||
|
||||
@mock.patch("jinja2.FileSystemLoader")
|
||||
@patch("jinja2.FileSystemLoader")
|
||||
def test_render_no_change(
|
||||
self, fs_loader: "jinja2.FileSystemLoader"
|
||||
) -> None:
|
||||
"""Check rendering template with no content change."""
|
||||
container_mock = mock.MagicMock()
|
||||
container_mock = MagicMock()
|
||||
container_mock.pull.return_value = TextIOWrapper(
|
||||
BytesIO(b"debug = True")
|
||||
)
|
||||
|
@ -1,4 +1,3 @@
|
||||
mock
|
||||
stestr
|
||||
coverage
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user