test_module_assertions.py 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. # -*- coding: utf-8 -*-
  2. import copy
  3. import subprocess
  4. from grass.pygrass.modules import Module
  5. from grass.gunittest.gmodules import SimpleModule
  6. import grass.gunittest
  7. from grass.gunittest.gmodules import CalledModuleError
  8. class TestModuleAssertions(grass.gunittest.TestCase):
  9. """Test assertions using PyGRASS Module"""
  10. # pylint: disable=R0904
  11. def setUp(self):
  12. """Create two Module instances one correct and one with wrong map"""
  13. self.rinfo = Module('r.info', map='elevation', flags='g',
  14. stdout_=subprocess.PIPE, run_=False, finish_=False)
  15. self.rinfo_wrong = copy.deepcopy(self.rinfo)
  16. self.wrong_map = 'does_not_exists'
  17. self.rinfo_wrong.inputs['map'].value = self.wrong_map
  18. def test_runModule(self):
  19. """Module used in runModule()"""
  20. self.runModule(self.rinfo)
  21. self.assertTrue(self.rinfo.outputs['stdout'].value)
  22. self.assertRaises(CalledModuleError, self.runModule, self.rinfo_wrong)
  23. def test_assertModule(self):
  24. """Module used in assertModule()"""
  25. self.assertModule(self.rinfo)
  26. self.assertTrue(self.rinfo.outputs['stdout'].value)
  27. self.assertRaises(self.failureException, self.assertModule, self.rinfo_wrong)
  28. def test_assertModuleFail(self):
  29. """Module used in assertModuleFail()"""
  30. self.assertModuleFail(self.rinfo_wrong)
  31. stderr = self.rinfo_wrong.outputs['stderr'].value
  32. self.assertTrue(stderr)
  33. self.assertIn(self.wrong_map, stderr)
  34. self.assertRaises(self.failureException, self.assertModuleFail, self.rinfo)
  35. class TestSimpleModuleAssertions(grass.gunittest.TestCase):
  36. """Test assertions using SimpleModule"""
  37. # pylint: disable=R0904
  38. def setUp(self):
  39. """Create two SimpleModule instances one correct and one with wrong map
  40. """
  41. self.rinfo = SimpleModule('r.info', map='elevation', flags='g')
  42. self.rinfo_wrong = copy.deepcopy(self.rinfo)
  43. self.wrong_map = 'does_not_exists'
  44. self.rinfo_wrong.inputs['map'].value = self.wrong_map
  45. def test_runModule(self):
  46. """SimpleModule used in runModule()"""
  47. self.runModule(self.rinfo)
  48. self.assertTrue(self.rinfo.outputs['stdout'].value)
  49. self.assertRaises(CalledModuleError, self.runModule, self.rinfo_wrong)
  50. def test_assertModule(self):
  51. """SimpleModule used in assertModule()"""
  52. self.assertModule(self.rinfo)
  53. self.assertTrue(self.rinfo.outputs['stdout'].value)
  54. self.assertRaises(self.failureException, self.assertModule, self.rinfo_wrong)
  55. def test_assertModuleFail(self):
  56. """SimpleModule used in assertModuleFail()"""
  57. self.assertModuleFail(self.rinfo_wrong)
  58. stderr = self.rinfo_wrong.outputs['stderr'].value
  59. self.assertTrue(stderr)
  60. self.assertIn(self.wrong_map, stderr)
  61. self.assertRaises(self.failureException, self.assertModuleFail, self.rinfo)
  62. if __name__ == '__main__':
  63. grass.gunittest.test()