test_raster.py 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. # -*- coding: utf-8 -*-
  2. from grass.exceptions import OpenError
  3. from grass.gunittest import TestCase, test
  4. from unittest import skip
  5. from grass.pygrass.raster import RasterRow
  6. class RasterRowTestCate(TestCase):
  7. @classmethod
  8. def setUpClass(cls):
  9. """Create a not empty table instance"""
  10. from grass.pygrass.modules.shortcuts import general as g
  11. cls.name = 'elevation'
  12. cls.tmp = 'tmp' + cls.name
  13. g.copy(rast=[cls.name, cls.tmp], overwrite=True)
  14. @classmethod
  15. def tearDownClass(cls):
  16. """Remove the generated vector map, if exist"""
  17. from grass.pygrass.modules.shortcuts import general as g
  18. g.remove(type='rast', name=cls.tmp, flags='f')
  19. def test_type(self):
  20. r = RasterRow(self.name)
  21. r.open(mode='r')
  22. self.assertTrue(r.mtype,'FCELL')
  23. r.close()
  24. def test_isopen(self):
  25. r = RasterRow(self.name)
  26. self.assertFalse(r.is_open())
  27. r.open(mode='r')
  28. self.assertTrue(r.is_open())
  29. r.close()
  30. self.assertFalse(r.is_open())
  31. def test_name(self):
  32. r = RasterRow(self.name)
  33. r.open(mode='r')
  34. self.assertEqual(r.name, self.name)
  35. fullname = "{name}@{mapset}".format(name=r.name, mapset=r.mapset)
  36. self.assertEqual(r.fullname(), fullname)
  37. r.close()
  38. def test_exist(self):
  39. notexist = RasterRow(self.name + 'notexist')
  40. self.assertFalse(notexist.exist())
  41. exist = RasterRow(self.name)
  42. self.assertTrue(exist.exist())
  43. def test_open_r(self):
  44. notexist = RasterRow(self.tmp + 'notexist')
  45. with self.assertRaises(OpenError):
  46. # raster does not exist
  47. notexist.open(mode='r')
  48. r = RasterRow(self.name)
  49. r.open(mode='r', mtype='DCELL')
  50. # ignore the mtype if is open in read mode
  51. self.assertEqual(r.mtype, 'FCELL')
  52. r.close()
  53. def test_open_w(self):
  54. r = RasterRow(self.tmp)
  55. with self.assertRaises(OpenError):
  56. # raster type is not defined!
  57. r.open(mode='w')
  58. with self.assertRaises(OpenError):
  59. # raster already exist
  60. r.open(mode='w', mtype='DCELL')
  61. # open in write mode and overwrite
  62. r.open(mode='w', mtype='DCELL', overwrite=True)
  63. self.assertTrue(r.mtype, 'DCELL')
  64. if __name__ == '__main__':
  65. test()