49 lines
1.5 KiB
Python
49 lines
1.5 KiB
Python
import unittest
|
|
from tuned.profiles.merger import Merger
|
|
from collections import OrderedDict
|
|
|
|
class MergerTestCase(unittest.TestCase):
|
|
def test_merge_without_replace(self):
|
|
merger = Merger()
|
|
config1 = OrderedDict([
|
|
("main", OrderedDict()),
|
|
("net", { "devices": "em0", "custom": "option"}),
|
|
])
|
|
config2 = OrderedDict([
|
|
("main", OrderedDict()),
|
|
("net", { "devices": "em1" }),
|
|
])
|
|
config = merger.merge([config1, config2])
|
|
|
|
self.assertIn("main", config)
|
|
self.assertIn("net", config)
|
|
self.assertEqual(config["net"]["custom"], "option")
|
|
self.assertEqual(config["net"]["devices"], "em1")
|
|
|
|
def test_merge_with_replace(self):
|
|
merger = Merger()
|
|
config1 = OrderedDict([
|
|
("main", OrderedDict()),
|
|
("net", { "devices": "em0", "custom": "option"}),
|
|
])
|
|
config2 = OrderedDict([
|
|
("main", OrderedDict()),
|
|
("net", { "devices": "em1", "replace": True }),
|
|
])
|
|
config = merger.merge([config1, config2])
|
|
|
|
self.assertIn("main", config)
|
|
self.assertIn("net", config)
|
|
self.assertNotIn("custom", config["net"])
|
|
self.assertEqual(config["net"]["devices"], "em1")
|
|
|
|
def test_merge_multiple_order(self):
|
|
merger = Merger()
|
|
config1 = OrderedDict([ ("main", OrderedDict()), ("net", { "devices": "em0" }) ])
|
|
config2 = OrderedDict([ ("main", OrderedDict()), ("net", { "devices": "em1" }) ])
|
|
config3 = OrderedDict([ ("main", OrderedDict()), ("net", { "devices": "em2" }) ])
|
|
config = merger.merge([config1, config2, config3])
|
|
|
|
self.assertIn("main", config)
|
|
self.assertIn("net", config)
|
|
self.assertEqual(config["net"]["devices"], "em2")
|