diff options
-rw-r--r-- | sos/policies/__init__.py | 6 | ||||
-rw-r--r-- | tests/option_tests.py | 4 | ||||
-rw-r--r-- | tests/plugin_tests.py | 38 |
3 files changed, 25 insertions, 23 deletions
diff --git a/sos/policies/__init__.py b/sos/policies/__init__.py index c12fc8c3..e91c79f2 100644 --- a/sos/policies/__init__.py +++ b/sos/policies/__init__.py @@ -846,11 +846,13 @@ class LinuxPolicy(Policy): _preferred_hash_name = None - def __init__(self, sysroot=None): + def __init__(self, sysroot=None, init=None): super(LinuxPolicy, self).__init__(sysroot=sysroot) self.init_kernel_modules() - if os.path.isdir("/run/systemd/system/"): + if init is not None: + self.init_system = init + elif os.path.isdir("/run/systemd/system/"): self.init_system = SystemdInit() else: self.init_system = InitSystem() diff --git a/tests/option_tests.py b/tests/option_tests.py index f0587367..4af16270 100644 --- a/tests/option_tests.py +++ b/tests/option_tests.py @@ -3,7 +3,7 @@ import unittest from sos.plugins import Plugin -from sos.policies import LinuxPolicy +from sos.policies import LinuxPolicy, InitSystem class MockOptions(object): @@ -18,7 +18,7 @@ class GlobalOptionTest(unittest.TestCase): def setUp(self): self.commons = { 'sysroot': '/', - 'policy': LinuxPolicy(), + 'policy': LinuxPolicy(init=InitSystem()), 'cmdlineopts': MockOptions() } self.plugin = Plugin(self.commons) diff --git a/tests/plugin_tests.py b/tests/plugin_tests.py index 9f03afa2..a886cfc7 100644 --- a/tests/plugin_tests.py +++ b/tests/plugin_tests.py @@ -12,7 +12,7 @@ except: from sos.plugins import Plugin, regex_findall, _mangle_command from sos.archive import TarFileArchive -from sos.policies import LinuxPolicy +from sos.policies import LinuxPolicy, InitSystem import sos.policies PATH = os.path.dirname(__file__) @@ -152,50 +152,50 @@ class PluginTests(unittest.TestCase): def setUp(self): self.mp = MockPlugin({ 'cmdlineopts': MockOptions(), - 'policy': LinuxPolicy(), + 'policy': LinuxPolicy(init=InitSystem()), 'sysroot': self.sysroot, 'cmdlineopts': MockOptions() }) self.mp.archive = MockArchive() def test_plugin_default_name(self): - p = MockPlugin({'sysroot': self.sysroot, 'policy': LinuxPolicy(), + p = MockPlugin({'sysroot': self.sysroot, 'policy': LinuxPolicy(init=InitSystem()), 'cmdlineopts': MockOptions()}) self.assertEquals(p.name(), "mockplugin") def test_plugin_set_name(self): - p = NamedMockPlugin({'sysroot': self.sysroot, 'policy': LinuxPolicy(), + p = NamedMockPlugin({'sysroot': self.sysroot, 'policy': LinuxPolicy(init=InitSystem()), 'cmdlineopts': MockOptions()}) self.assertEquals(p.name(), "testing") def test_plugin_no_descrip(self): - p = MockPlugin({'sysroot': self.sysroot, 'policy': LinuxPolicy(), + p = MockPlugin({'sysroot': self.sysroot, 'policy': LinuxPolicy(init=InitSystem()), 'cmdlineopts': MockOptions()}) self.assertEquals(p.get_description(), "<no description available>") def test_plugin_no_descrip(self): - p = NamedMockPlugin({'sysroot': self.sysroot, 'policy': LinuxPolicy(), + p = NamedMockPlugin({'sysroot': self.sysroot, 'policy': LinuxPolicy(init=InitSystem()), 'cmdlineopts': MockOptions()}) self.assertEquals(p.get_description(), "This plugin has a description.") def test_set_plugin_option(self): - p = MockPlugin({'sysroot': self.sysroot, 'policy': LinuxPolicy(), + p = MockPlugin({'sysroot': self.sysroot, 'policy': LinuxPolicy(init=InitSystem()), 'cmdlineopts': MockOptions()}) p.set_option("opt", "testing") self.assertEquals(p.get_option("opt"), "testing") def test_set_nonexistant_plugin_option(self): - p = MockPlugin({'sysroot': self.sysroot, 'policy': LinuxPolicy(), + p = MockPlugin({'sysroot': self.sysroot, 'policy': LinuxPolicy(init=InitSystem()), 'cmdlineopts': MockOptions()}) self.assertFalse(p.set_option("badopt", "testing")) def test_get_nonexistant_plugin_option(self): - p = MockPlugin({'sysroot': self.sysroot, 'policy': LinuxPolicy(), + p = MockPlugin({'sysroot': self.sysroot, 'policy': LinuxPolicy(init=InitSystem()), 'cmdlineopts': MockOptions()}) self.assertEquals(p.get_option("badopt"), 0) def test_get_unset_plugin_option(self): - p = MockPlugin({'sysroot': self.sysroot, 'policy': LinuxPolicy(), + p = MockPlugin({'sysroot': self.sysroot, 'policy': LinuxPolicy(init=InitSystem()), 'cmdlineopts': MockOptions()}) self.assertEquals(p.get_option("opt"), 0) @@ -203,7 +203,7 @@ class PluginTests(unittest.TestCase): # this shows that even when we pass in a default to get, # we'll get the option's default as set in the plugin # this might not be what we really want - p = MockPlugin({'sysroot': self.sysroot, 'policy': LinuxPolicy(), + p = MockPlugin({'sysroot': self.sysroot, 'policy': LinuxPolicy(init=InitSystem()), 'cmdlineopts': MockOptions()}) self.assertEquals(p.get_option("opt", True), True) @@ -212,23 +212,23 @@ class PluginTests(unittest.TestCase): # if the plugin default is not None # we'll get the option's default as set in the plugin # this might not be what we really want - p = MockPlugin({'sysroot': self.sysroot, 'policy': LinuxPolicy(), + p = MockPlugin({'sysroot': self.sysroot, 'policy': LinuxPolicy(init=InitSystem()), 'cmdlineopts': MockOptions()}) self.assertEquals(p.get_option("opt2", True), False) def test_get_option_as_list_plugin_option(self): - p = MockPlugin({'sysroot': self.sysroot, 'policy': LinuxPolicy(), + p = MockPlugin({'sysroot': self.sysroot, 'policy': LinuxPolicy(init=InitSystem()), 'cmdlineopts': MockOptions()}) p.set_option("opt", "one,two,three") self.assertEquals(p.get_option_as_list("opt"), ['one', 'two', 'three']) def test_get_option_as_list_plugin_option_default(self): - p = MockPlugin({'sysroot': self.sysroot, 'policy': LinuxPolicy(), + p = MockPlugin({'sysroot': self.sysroot, 'policy': LinuxPolicy(init=InitSystem()), 'cmdlineopts': MockOptions()}) self.assertEquals(p.get_option_as_list("opt", default=[]), []) def test_get_option_as_list_plugin_option_not_list(self): - p = MockPlugin({'sysroot': self.sysroot, 'policy': LinuxPolicy(), + p = MockPlugin({'sysroot': self.sysroot, 'policy': LinuxPolicy(init=InitSystem()), 'cmdlineopts': MockOptions()}) p.set_option("opt", "testing") self.assertEquals(p.get_option_as_list("opt"), ['testing']) @@ -245,7 +245,7 @@ class PluginTests(unittest.TestCase): p = ForbiddenMockPlugin({ 'cmdlineopts': MockOptions(), 'sysroot': self.sysroot, - 'policy': LinuxPolicy() + 'policy': LinuxPolicy(init=InitSystem()) }) p.archive = MockArchive() p.setup() @@ -256,7 +256,7 @@ class PluginTests(unittest.TestCase): p = PostprocMockPlugin({ 'cmdlineopts': MockOptions(), 'sysroot': self.sysroot, - 'policy': LinuxPolicy() + 'policy': LinuxPolicy(init=InitSystem()) }) p.postproc() self.assertTrue(p.did_postproc) @@ -269,7 +269,7 @@ class AddCopySpecTests(unittest.TestCase): def setUp(self): self.mp = MockPlugin({ 'cmdlineopts': MockOptions(), - 'policy': LinuxPolicy(), + 'policy': LinuxPolicy(init=InitSystem()), 'sysroot': os.getcwd(), 'cmdlineopts': MockOptions() }) @@ -375,7 +375,7 @@ class RegexSubTests(unittest.TestCase): def setUp(self): self.mp = MockPlugin({ 'cmdlineopts': MockOptions(), - 'policy': LinuxPolicy(), + 'policy': LinuxPolicy(init=InitSystem()), 'sysroot': os.getcwd() }) self.mp.archive = MockArchive() |