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'",))
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')", ))
from pyhive import common from pyhive.common import DBAPITypeObject # Make all exceptions visible in this module per DB-API from pyhive.exc import * import getpass import logging import requests import urlparse # PEP 249 module globals apilevel = '2.0' threadsafety = 2 # Threads may share the module and connections. paramstyle = 'pyformat' # Python extended format codes, e.g. ...WHERE name=%(name)s _logger = logging.getLogger(__name__) _escaper = common.ParamEscaper() def connect(*args, **kwargs): """Constructor for creating a connection to the database. See class :py:class:`Connection` for arguments. :returns: a :py:class:`Connection` object. """ return Connection(*args, **kwargs) class Connection(object): """Presto does not have a notion of a persistent connection. Thus, these objects are small stateless factories for cursors, which do all the real work.