1
0
Fork 0
tuned/tests/unit/monitors/test_base.py
Miro Hrončok 2399aa3b2d Remove usage of unittest2, use unittest from the standard library
Fixes https://github.com/redhat-performance/tuned/issues/241

Fedora is removing the unittest2 package: https://bugzilla.redhat.com/show_bug.cgi?id=1794222

tuned is not targeting Python 2.6: https://github.com/redhat-performance/tuned/issues/241#issuecomment-588320175

One thing not present in Python 2.7 is assertItemsEqual() -- renamed to assertCountEqual().

Related, mock was also listed as a requirement in the spec file,
but all the imports are from unittest.mock, hence removed.
2020-02-25 20:04:51 +01:00

98 lines
2.8 KiB
Python

import unittest
import tuned.monitors.base
class MockMonitor(tuned.monitors.base.Monitor):
@classmethod
def _init_available_devices(cls):
cls._available_devices = set(["a", "b"])
@classmethod
def update(cls):
for device in ["a", "b"]:
cls._load.setdefault(device, 0)
cls._load[device] += 1
class MonitorBaseClassTestCase(unittest.TestCase):
def test_fail_base_class_init(self):
with self.assertRaises(NotImplementedError):
tuned.monitors.base.Monitor()
def test_update_fail_with_base_class(self):
with self.assertRaises(NotImplementedError):
tuned.monitors.base.Monitor.update()
def test_available_devices(self):
monitor = MockMonitor()
devices = MockMonitor.get_available_devices()
self.assertEqual(devices, set(["a", "b"]))
monitor.cleanup()
def test_registering_instances(self):
monitor = MockMonitor()
self.assertIn(monitor, MockMonitor.instances())
monitor.cleanup()
self.assertNotIn(monitor, MockMonitor.instances())
def test_init_with_devices(self):
monitor = MockMonitor()
self.assertSetEqual(set(["a", "b"]), monitor.devices)
monitor.cleanup()
monitor = MockMonitor(["a"])
self.assertSetEqual(set(["a"]), monitor.devices)
monitor.cleanup()
monitor = MockMonitor([])
self.assertSetEqual(set(), monitor.devices)
monitor.cleanup()
monitor = MockMonitor(["b", "x"])
self.assertSetEqual(set(["b"]), monitor.devices)
monitor.cleanup()
def test_add_device(self):
monitor = MockMonitor(["a"])
self.assertSetEqual(set(["a"]), monitor.devices)
monitor.add_device("x")
self.assertSetEqual(set(["a"]), monitor.devices)
monitor.add_device("b")
self.assertSetEqual(set(["a", "b"]), monitor.devices)
monitor.cleanup()
def test_remove_device(self):
monitor = MockMonitor()
self.assertSetEqual(set(["a", "b"]), monitor.devices)
monitor.remove_device("a")
self.assertSetEqual(set(["b"]), monitor.devices)
monitor.remove_device("x")
self.assertSetEqual(set(["b"]), monitor.devices)
monitor.remove_device("b")
self.assertSetEqual(set(), monitor.devices)
monitor.cleanup()
def test_get_load_from_enabled(self):
monitor = MockMonitor()
load = monitor.get_load()
self.assertIn("a", load)
self.assertIn("b", load)
monitor.remove_device("a")
load = monitor.get_load()
self.assertNotIn("a", load)
self.assertIn("b", load)
monitor.remove_device("b")
load = monitor.get_load()
self.assertDictEqual({}, load)
monitor.cleanup()
def test_refresh_of_updating_devices(self):
monitor1 = MockMonitor(["a"])
self.assertSetEqual(set(["a"]), MockMonitor._updating_devices)
monitor2 = MockMonitor(["a", "b"])
self.assertSetEqual(set(["a", "b"]), MockMonitor._updating_devices)
monitor1.cleanup()
self.assertSetEqual(set(["a", "b"]), MockMonitor._updating_devices)
monitor2.cleanup()
self.assertSetEqual(set(), MockMonitor._updating_devices)