| # encoding: utf-8 |
| from __future__ import absolute_import |
| from __future__ import unicode_literals |
| from pyhive import common |
| import datetime |
| import unittest |
| |
| |
| class TestCommon(unittest.TestCase): |
| def test_escape_args(self): |
| escaper = common.ParamEscaper() |
| self.assertEqual(escaper.escape_args({'foo': 'bar'}), |
| {'foo': "'bar'"}) |
| self.assertEqual(escaper.escape_args({'foo': 123}), |
| {'foo': 123}) |
| self.assertEqual(escaper.escape_args({'foo': 123.456}), |
| {'foo': 123.456}) |
| self.assertEqual(escaper.escape_args({'foo': ['a', 'b', 'c']}), |
| {'foo': "('a','b','c')"}) |
| self.assertEqual(escaper.escape_args({'foo': ('a', 'b', 'c')}), |
| {'foo': "('a','b','c')"}) |
| self.assertIn(escaper.escape_args({'foo': {'a', 'b'}}), |
| ({'foo': "('a','b')"}, {'foo': "('b','a')"})) |
| self.assertIn(escaper.escape_args({'foo': frozenset(['a', 'b'])}), |
| ({'foo': "('a','b')"}, {'foo': "('b','a')"})) |
| |
| self.assertEqual(escaper.escape_args(('bar',)), |
| ("'bar'",)) |
| self.assertEqual(escaper.escape_args([123]), |
| (123,)) |
| self.assertEqual(escaper.escape_args((123.456,)), |
| (123.456,)) |
| self.assertEqual(escaper.escape_args((['a', 'b', 'c'],)), |
| ("('a','b','c')",)) |
| self.assertEqual(escaper.escape_args((['你好', 'b', 'c'],)), |
| ("('你好','b','c')",)) |
| self.assertEqual(escaper.escape_args((datetime.date(2020, 4, 17),)), |
| ("'2020-04-17'",)) |
| self.assertEqual(escaper.escape_args((datetime.datetime(2020, 4, 17, 12, 0, 0, 123456),)), |
| ("'2020-04-17 12:00:00.123456'",)) |