1
0
Fork 0

Fix unit tests for Merger class

This commit is contained in:
Tomas Korbar 2018-08-17 13:10:13 +02:00
parent ca040870b3
commit b4f4e41adc

View file

@ -1,49 +1,62 @@
import unittest import unittest2
from tuned.profiles.merger import Merger from tuned.profiles.merger import Merger
from tuned.profiles.profile import Profile
from collections import OrderedDict from collections import OrderedDict
class MergerTestCase(unittest.TestCase): class MergerTestCase(unittest2.TestCase):
def test_merge_without_replace(self): def test_merge_without_replace(self):
merger = Merger() merger = Merger()
config1 = OrderedDict([ config1 = OrderedDict([
("main", OrderedDict()), ("main", {"test_option" : "test_value1"}),
("net", { "devices": "em0", "custom": "option"}), ("net", { "devices": "em0", "custom": "custom_value"}),
]) ])
profile1 = Profile('test_profile1',config1)
config2 = OrderedDict([ config2 = OrderedDict([
("main", OrderedDict()), ('main', {'test_option' : 'test_value2'}),
("net", { "devices": "em1" }), ('net', { 'devices': 'em1' }),
]) ])
config = merger.merge([config1, config2]) profile2 = Profile("test_profile2",config2)
self.assertIn("main", config) merged_profile = merger.merge([profile1, profile2])
self.assertIn("net", config)
self.assertEqual(config["net"]["custom"], "option") self.assertEqual(merged_profile.options["test_option"],"test_value2")
self.assertEqual(config["net"]["devices"], "em1") self.assertIn("net", merged_profile.units)
self.assertEqual(merged_profile.units["net"].options["custom"],\
"custom_value")
self.assertEqual(merged_profile.units["net"].devices, "em1")
def test_merge_with_replace(self): def test_merge_with_replace(self):
merger = Merger() merger = Merger()
config1 = OrderedDict([ config1 = OrderedDict([
("main", OrderedDict()), ("main", {"test_option" : "test_value1"}),
("net", { "devices": "em0", "custom": "option"}), ("net", { "devices": "em0", "custom": "option"}),
]) ])
profile1 = Profile('test_profile1',config1)
config2 = OrderedDict([ config2 = OrderedDict([
("main", OrderedDict()), ("main", {"test_option" : "test_value2"}),
("net", { "devices": "em1", "replace": True }), ("net", { "devices": "em1", "replace": True }),
]) ])
config = merger.merge([config1, config2]) profile2 = Profile('test_profile2',config2)
merged_profile = merger.merge([profile1, profile2])
self.assertIn("main", config) self.assertEqual(merged_profile.options["test_option"],"test_value2")
self.assertIn("net", config) self.assertIn("net", merged_profile.units)
self.assertNotIn("custom", config["net"]) self.assertNotIn("custom", merged_profile.units["net"].options)
self.assertEqual(config["net"]["devices"], "em1") self.assertEqual(merged_profile.units["net"].devices, "em1")
def test_merge_multiple_order(self): def test_merge_multiple_order(self):
merger = Merger() merger = Merger()
config1 = OrderedDict([ ("main", OrderedDict()), ("net", { "devices": "em0" }) ]) config1 = OrderedDict([ ("main", {"test_option" : "test_value1"}),\
config2 = OrderedDict([ ("main", OrderedDict()), ("net", { "devices": "em1" }) ]) ("net", { "devices": "em0" }) ])
config3 = OrderedDict([ ("main", OrderedDict()), ("net", { "devices": "em2" }) ]) profile1 = Profile('test_profile1',config1)
config = merger.merge([config1, config2, config3]) config2 = OrderedDict([ ("main", {"test_option" : "test_value2"}),\
("net", { "devices": "em1" }) ])
profile2 = Profile('test_profile2',config2)
config3 = OrderedDict([ ("main", {"test_option" : "test_value3"}),\
("net", { "devices": "em2" }) ])
profile3 = Profile('test_profile3',config3)
merged_profile = merger.merge([profile1, profile2, profile3])
self.assertIn("main", config) self.assertEqual(merged_profile.options["test_option"],"test_value3")
self.assertIn("net", config) self.assertIn("net", merged_profile.units)
self.assertEqual(config["net"]["devices"], "em2") self.assertEqual(merged_profile.units["net"].devices, "em2")