test_module_assertions.py 3.1 KB

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