Files
charm-ceph-mon/unit_tests/test_charm.py
Chris MacNaughton 7703ba5c28 Add operator-native ceph-client library
Change-Id: Id9caf3b385094b9bc4010893034185d0a47c45d4
2022-10-07 13:05:53 -04:00

66 lines
1.8 KiB
Python

#!/usr/bin/env python3
# Copyright 2022 Canonical Ltd.
# See LICENSE file for licensing details.
from unittest.mock import patch
import unittest
from ops.testing import Harness
import ceph_metrics # noqa: avoid circ. import
import charm
class TestCephCharm(unittest.TestCase):
def setUp(self):
super().setUp()
self.harness = Harness(charm.CephMonCharm)
self.harness.begin()
self.addCleanup(self.harness.cleanup)
def test_init(self):
self.assertTrue(self.harness.charm.framework)
self.assertTrue(self.harness.charm.metrics_endpoint)
self.assertTrue(self.harness.charm.ceph_status)
@patch.object(charm.ceph_client.CephClientProvides, 'notify_all')
@patch("charm.hooks")
def test_on_config_changed(self, hooks, _notify_all):
self.harness.update_config({"permit-insecure-cmr": None})
hooks.config_changed.assert_called()
@patch.object(charm.ceph_client.CephClientProvides, 'notify_all')
@patch("charm.ops_openstack.core.apt_install")
@patch("charm.ops_openstack.core.apt_update")
@patch("charm.ops_openstack.core.add_source")
@patch("charm.ops_openstack.core.OSBaseCharm.update_status")
@patch("charm.hooks")
@patch("charm.systemd")
@patch("charm.apt")
def test_on_install(
self,
_apt,
_systemd,
_hooks,
_update_status,
_add_source,
apt_update,
apt_install,
_notify_all
):
self.harness.update_config({"permit-insecure-cmr": None})
self.harness.charm.on.install.emit()
apt_install.assert_called_with(
[
"ceph",
"gdisk",
"radosgw",
"lvm2",
"parted",
"smartmontools",
],
fatal=True,
)
apt_update.assert_called()