#!/usr/bin/python import operator import subprocess import unittest from sznqalibs import hoover class PyinireadDriver(hoover.BaseTestDriver): def _get_data(self): out = "" with open(self._args['file']) as fh: for x in fh.readlines(): if not x.startswith("#"): out += x self.data['stdout'] = out class InireadDriver(hoover.BaseTestDriver): plain_args = ['file'] params = ['-k', '-s'] switches = ['-d', '-1'] def _get_data(self): args = ['fff', '-I', 'ini', 'iniread'] for key in self._args['order'].split(','): value = self._args[key] if key in self.switches: if value: args.append(key) elif key in self.params: if value is not None: args += [key, value] else: if value is not None: args.append(value) self.data['stdout'] = subprocess.check_output(args) class TestCase(unittest.TestCase): def setUp(self): self.driver_class = InireadDriver def test_simple(self): argsrc = hoover.Cartman({ 'order': ['-k,-s,file', '-s,-k,file'], '-k': ['somekey', None, ''], '-s': ['somesection', None, ''], 'file': './data/iniread/test1', }, { 'order': hoover.Cartman.Iterable, '-k': hoover.Cartman.Iterable, '-s': hoover.Cartman.Iterable, 'file': hoover.Cartman.Scalar, }) tests = [(operator.eq, InireadDriver, PyinireadDriver)] tracker = hoover.regression_test(argsrc, tests) self.assertFalse(tracker.errors_found(), tracker.format_report()) if __name__ == '__main__': unittest.main()