aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sos/policies/__init__.py6
-rw-r--r--tests/option_tests.py4
-rw-r--r--tests/plugin_tests.py38
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()