test_geometry_attrs.py 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Thu Jun 19 14:13:53 2014
  4. @author: pietro
  5. """
  6. import sys
  7. import unittest
  8. import numpy as np
  9. from grass.gunittest.case import TestCase
  10. from grass.gunittest.main import test
  11. import grass.lib.vector as libvect
  12. from grass.script.core import run_command
  13. from grass.pygrass.vector import VectorTopo
  14. class GeometryAttrsTestCase(TestCase):
  15. tmpname = "GeometryAttrsCase_map"
  16. @classmethod
  17. def setUpClass(cls):
  18. from grass.pygrass import utils
  19. utils.create_test_vector_map(cls.tmpname)
  20. cls.vect = None
  21. cls.vect = VectorTopo(cls.tmpname)
  22. cls.vect.open('r')
  23. cls.c_mapinfo = cls.vect.c_mapinfo
  24. cls.attrs = cls.vect[1].attrs
  25. @classmethod
  26. def tearDownClass(cls):
  27. cls.attrs = None
  28. if cls.vect is not None:
  29. cls.vect.close()
  30. cls.c_mapinfo = None
  31. """Remove the generated vector map, if exist"""
  32. cls.runModule("g.remove", flags='f', type='vector',
  33. name=cls.tmpname)
  34. def test_getitem(self):
  35. """Test __getitem__ magic method"""
  36. self.assertEqual(self.attrs['name'], u'point')
  37. self.assertEqual(self.attrs['value'], 1.0)
  38. self.assertTupleEqual(self.attrs['name', 'value'], (u'point', 1.0))
  39. with self.assertRaises(ValueError) as cm:
  40. self.attrs['not_existing_column_name']
  41. self.assertTrue(u"not_existing_column_name" in str(cm.exception))
  42. def test_setitem(self):
  43. """Test __setitem__ magic method"""
  44. newname = 'setitem_point_1'
  45. newvalue = 100.0
  46. newpairs = ('setitem_point_2', 1000.)
  47. self.attrs.__setitem__('name', newname)
  48. self.assertEqual(self.attrs['name'], newname)
  49. self.attrs.__setitem__('value', newvalue)
  50. self.assertEqual(self.attrs['value'], newvalue)
  51. self.attrs.__setitem__(('name', 'value'), newpairs)
  52. self.assertEqual(self.attrs['name', 'value'], newpairs)
  53. if __name__ == '__main__':
  54. test()