123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- import os
- import sys
- from grass.gunittest.case import TestCase
- from grass.gunittest.main import test
- from grass.script import utils
- class EnvironChange(TestCase):
- env = dict()
- NOT_FOUND = "Not found!"
- def setUp(self):
- self.original_env = {
- k: os.environ.get(k, self.NOT_FOUND) for k in self.env.keys()
- }
- for k, v in self.env.items():
- os.environ[k] = v
- def tearDown(self):
- for k, v in self.env.items():
- oval = self.original_env[k]
- if oval == self.NOT_FOUND:
- os.environ.pop(k)
- else:
- os.environ[k] = oval
- class LcAllC(EnvironChange):
- env = dict(LC_ALL="C")
- class TestEncode(TestCase):
- """Tests function `encode` that convert value to bytes."""
- def test_bytes(self):
- self.assertEqual(b"text", utils.encode(b"text"))
- def test_unicode(self):
- self.assertEqual(b"text", utils.encode("text"))
- def test_bytes_garbage_in_out(self):
- """If the input is bytes we should not touch it for encoding"""
- self.assertEqual(
- b"P\xc5\x99\xc3\xad\xc5\xa1ern\xc3\xbd k\xc5\xaf\xc5\x88",
- utils.encode("Příšerný kůň"),
- )
- def test_int(self):
- """If the input is an integer return bytes"""
- if sys.version_info.major >= 3:
- self.assertRaises(TypeError, utils.encode, 1234567890)
- else:
- self.assertEqual("1234567890", utils.encode(1234567890))
- def test_float(self):
- """If the input is a float return bytes"""
- if sys.version_info.major >= 3:
- self.assertRaises(TypeError, utils.encode, 12345.6789)
- else:
- self.assertEqual("12345.6789", utils.encode(12345.6789))
- def test_none(self):
- """If the input is a boolean return bytes"""
- if sys.version_info.major >= 3:
- self.assertRaises(TypeError, utils.encode, None)
- else:
- self.assertEqual("None", utils.encode(None))
- class TestDecode(TestCase):
- """Tests function `decode` that converts value to unicode."""
- def test_bytes(self):
- self.assertEqual("text", utils.decode(b"text"))
- def test_unicode(self):
- self.assertEqual("text", utils.decode("text"))
- def test_int(self):
- """If the input is an integer return bytes"""
- if sys.version_info.major >= 3:
- self.assertRaises(TypeError, utils.decode, 1234567890)
- else:
- self.assertEqual("1234567890", utils.decode(1234567890))
- def test_float(self):
- """If the input is a float return bytes"""
- if sys.version_info.major >= 3:
- self.assertRaises(TypeError, utils.decode, 12345.6789)
- else:
- self.assertEqual("12345.6789", utils.decode(12345.6789))
- def test_none(self):
- """If the input is a boolean return bytes"""
- if sys.version_info.major >= 3:
- self.assertRaises(TypeError, utils.decode, None)
- else:
- self.assertEqual("None", utils.decode(None))
- class TestEncodeLcAllC(TestEncode, LcAllC):
- pass
- class TestDecodeLcAllC(TestDecode, LcAllC):
- pass
- if __name__ == "__main__":
- test()
|