shell dot on steroids https://pagure.io/shellfu

test_iniread.py 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #!/usr/bin/python
  2. import operator
  3. import subprocess
  4. import unittest
  5. from sznqalibs import hoover
  6. class PyinireadDriver(hoover.BaseTestDriver):
  7. def _get_data(self):
  8. out = ""
  9. with open(self._args['file']) as fh:
  10. for x in fh.readlines():
  11. if not x.startswith("#"):
  12. out += x
  13. self.data['stdout'] = out
  14. class InireadDriver(hoover.BaseTestDriver):
  15. plain_args = ['file']
  16. params = ['-k', '-s']
  17. switches = ['-d', '-1']
  18. def _get_data(self):
  19. args = ['fff', '-I', 'ini', 'iniread']
  20. for key in self._args['order'].split(','):
  21. value = self._args[key]
  22. if key in self.switches:
  23. if value:
  24. args.append(key)
  25. elif key in self.params:
  26. if value is not None:
  27. args += [key, value]
  28. else:
  29. if value is not None:
  30. args.append(value)
  31. self.data['stdout'] = subprocess.check_output(args)
  32. class TestCase(unittest.TestCase):
  33. def setUp(self):
  34. self.driver_class = InireadDriver
  35. def test_simple(self):
  36. argsrc = hoover.Cartman({
  37. 'order': ['-k,-s,file', '-s,-k,file'],
  38. '-k': ['somekey', None, ''],
  39. '-s': ['somesection', None, ''],
  40. 'file': './data/iniread/test1',
  41. }, {
  42. 'order': hoover.Cartman.Iterable,
  43. '-k': hoover.Cartman.Iterable,
  44. '-s': hoover.Cartman.Iterable,
  45. 'file': hoover.Cartman.Scalar,
  46. })
  47. tests = [(operator.eq, InireadDriver, PyinireadDriver)]
  48. tracker = hoover.regression_test(argsrc, tests)
  49. self.assertFalse(tracker.errors_found(), tracker.format_report())
  50. if __name__ == '__main__':
  51. unittest.main()