test_module_assertions.py 3.1 KB

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