test_utils.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. # -*- coding: utf-8 -*-
  2. import os
  3. from grass.gunittest.case import TestCase
  4. from grass.gunittest.main import test
  5. from grass.script import utils
  6. class EnvironChange(TestCase):
  7. env = dict()
  8. NOT_FOUND = 'Not found!'
  9. def setUp(self):
  10. self.original_env = {k: os.environ.get(k, self.NOT_FOUND)
  11. for k in self.env.keys()}
  12. for k, v in self.env.items():
  13. os.environ[k] = v
  14. def tearDown(self):
  15. for k, v in self.env.items():
  16. oval = self.original_env[k]
  17. if oval == self.NOT_FOUND:
  18. os.environ.pop(k)
  19. else:
  20. os.environ[k] = oval
  21. class LcAllC(EnvironChange):
  22. env = dict(LC_ALL='C')
  23. class TestEncode(TestCase):
  24. """Tests function `encode` that convert value to bytes."""
  25. def test_bytes(self):
  26. self.assertEqual(b'text', utils.encode(b'text'))
  27. def test_unicode(self):
  28. self.assertEqual(b'text', utils.encode(u'text'))
  29. class TestDecode(TestCase):
  30. """Tests function `encode` that convert value to unicode."""
  31. def test_bytes(self):
  32. self.assertEqual(u'text', utils.decode(b'text'))
  33. def test_unicode(self):
  34. self.assertEqual(u'text', utils.decode(u'text'))
  35. class TestEncodeLcAllC(TestEncode, LcAllC):
  36. pass
  37. class TestDecodeLcAllC(TestDecode, LcAllC):
  38. pass
  39. if __name__ == '__main__':
  40. test()