def _set_snapper_sysconfig_file(root_path): sysconf_file = SysConfig( os.sep.join([root_path, 'etc/sysconfig/snapper'])) if not sysconf_file.get('SNAPPER_CONFIGS') or \ len(sysconf_file['SNAPPER_CONFIGS'].strip('\"')) == 0: sysconf_file['SNAPPER_CONFIGS'] = '"root"' sysconf_file.write() elif len(sysconf_file['SNAPPER_CONFIGS'].split()) > 1: raise KiwiVolumeManagerSetupError( 'Unsupported SNAPPER_CONFIGS value: {0}'.format( sysconf_file['SNAPPER_CONFIGS'])) return os.sep.join([ root_path, 'etc/snapper/configs', sysconf_file['SNAPPER_CONFIGS'].strip('\"') ])
class TestSysConfig: def setup(self): self.context_manager_mock = mock.Mock() self.file_mock = mock.Mock() self.enter_mock = mock.Mock() self.exit_mock = mock.Mock() self.enter_mock.return_value = self.file_mock setattr(self.context_manager_mock, '__enter__', self.enter_mock) setattr(self.context_manager_mock, '__exit__', self.exit_mock) self.sysconfig = SysConfig('../data/sysconfig_example.txt') def test_get_item(self): assert self.sysconfig['name'] == ' "Marcus"' assert self.sysconfig.get('name') == ' "Marcus"' def test_set_item_existing(self): self.sysconfig['name'] = 'Bob' assert self.sysconfig['name'] == 'Bob' def test_set_item_not_existing(self): self.sysconfig['foo'] = '"bar"' assert self.sysconfig['foo'] == '"bar"' assert self.sysconfig.data_list[-1] == 'foo' def test_contains(self): assert 'non_existing_key' not in self.sysconfig assert 'name' in self.sysconfig @patch_open def test_write(self, mock_open): mock_open.return_value = self.context_manager_mock self.sysconfig.write() assert self.file_mock.write.call_args_list == [ call('# some name'), call('\n'), call('name= "Marcus"'), call('\n'), call(''), call('\n'), call('some_key= some-value'), call('\n') ]
class TestSysConfig: def setup(self): self.sysconfig = SysConfig('../data/sysconfig_example.txt') def setup_method(self, cls): self.setup() def test_get_item(self): assert self.sysconfig['name'] == ' "Marcus"' assert self.sysconfig.get('name') == ' "Marcus"' def test_set_item_existing(self): self.sysconfig['name'] = 'Bob' assert self.sysconfig['name'] == 'Bob' def test_set_item_not_existing(self): self.sysconfig['foo'] = '"bar"' assert self.sysconfig['foo'] == '"bar"' assert self.sysconfig.data_list[-1] == 'foo' def test_contains(self): assert 'non_existing_key' not in self.sysconfig assert 'name' in self.sysconfig def test_write(self): m_open = mock_open() with patch('builtins.open', m_open, create=True): self.sysconfig.write() assert m_open.return_value.write.call_args_list == [ call('# some name'), call('\n'), call('name= "Marcus"'), call('\n'), call(''), call('\n'), call('some_key= some-value'), call('\n') ]