1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- # -*- coding: utf-8 -*-
- from grass.exceptions import OpenError
- from grass.gunittest import TestCase, test
- from unittest import skip
- from grass.pygrass.raster import RasterRow
- class RasterRowTestCate(TestCase):
- @classmethod
- def setUpClass(cls):
- """Create a not empty table instance"""
- from grass.pygrass.modules.shortcuts import general as g
- cls.name = 'elevation'
- cls.tmp = 'tmp' + cls.name
- g.copy(rast=[cls.name, cls.tmp], overwrite=True)
- @classmethod
- def tearDownClass(cls):
- """Remove the generated vector map, if exist"""
- from grass.pygrass.modules.shortcuts import general as g
- g.remove(type='rast', name=cls.tmp, flags='f')
- def test_type(self):
- r = RasterRow(self.name)
- r.open(mode='r')
- self.assertTrue(r.mtype,'FCELL')
- r.close()
- def test_isopen(self):
- r = RasterRow(self.name)
- self.assertFalse(r.is_open())
- r.open(mode='r')
- self.assertTrue(r.is_open())
- r.close()
- self.assertFalse(r.is_open())
- def test_name(self):
- r = RasterRow(self.name)
- r.open(mode='r')
- self.assertEqual(r.name, self.name)
- fullname = "{name}@{mapset}".format(name=r.name, mapset=r.mapset)
- self.assertEqual(r.fullname(), fullname)
- r.close()
- def test_exist(self):
- notexist = RasterRow(self.name + 'notexist')
- self.assertFalse(notexist.exist())
- exist = RasterRow(self.name)
- self.assertTrue(exist.exist())
- def test_open_r(self):
- notexist = RasterRow(self.tmp + 'notexist')
- with self.assertRaises(OpenError):
- # raster does not exist
- notexist.open(mode='r')
- r = RasterRow(self.name)
- r.open(mode='r', mtype='DCELL')
- # ignore the mtype if is open in read mode
- self.assertEqual(r.mtype, 'FCELL')
- r.close()
- def test_open_w(self):
- r = RasterRow(self.tmp)
- with self.assertRaises(OpenError):
- # raster type is not defined!
- r.open(mode='w')
- with self.assertRaises(OpenError):
- # raster already exist
- r.open(mode='w', mtype='DCELL')
- # open in write mode and overwrite
- r.open(mode='w', mtype='DCELL', overwrite=True)
- self.assertTrue(r.mtype, 'DCELL')
- if __name__ == '__main__':
- test()
|