Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_session_logon_success(self):
conn = connect(user='admin', password='HyperInteractive',
host='localhost', dbname='omnisci')
sessionid = conn._session
connnew = connect(sessionid=sessionid, host='localhost')
assert connnew._session == sessionid
def test_bad_protocol(self, mock_client):
with pytest.raises(ValueError) as m:
connect(user='user', host='localhost', dbname='dbname',
protocol='fake-proto')
assert m.match('fake-proto')
def _connect(self):
return connect(user="admin",
password='HyperInteractive',
host='localhost',
port=6274, protocol='binary', dbname='omnisci')
data = pd.DataFrame({
"boolean_": [True, False],
"smallint_": np.array([0, 1], dtype=np.int16),
"int_": np.array([0, 1], dtype=np.int32),
"bigint_": np.array([0, 1], dtype=np.int64),
"float_": np.array([0, 1], dtype=np.float32),
"double_": np.array([0, 1], dtype=np.float64),
"varchar_": ["a", "b"],
"text_": ['a', 'b'],
"time_": [datetime.time(0, 11, 59), datetime.time(13)],
"timestamp_": [pd.Timestamp("2016"), pd.Timestamp("2017")],
"date_": [datetime.date(2016, 1, 1), datetime.date(2017, 1, 1)],
}, columns=['boolean_', 'smallint_', 'int_', 'bigint_', 'float_',
'double_', 'varchar_', 'text_', 'time_', 'timestamp_',
'date_'])
result = _pandas_loaders.build_input_columnar(data,
preserve_index=False)
nulls = [False, False]
expected = [
TColumn(TColumnData(int_col=[True, False]), nulls=nulls),
TColumn(TColumnData(int_col=np.array([0, 1], dtype=np.int16)), nulls=nulls), # noqa
TColumn(TColumnData(int_col=np.array([0, 1], dtype=np.int32)), nulls=nulls), # noqa
TColumn(TColumnData(int_col=np.array([0, 1], dtype=np.int64)), nulls=nulls), # noqa
TColumn(TColumnData(real_col=np.array([0, 1], dtype=np.float32)), nulls=nulls), # noqa
TColumn(TColumnData(real_col=np.array([0, 1], dtype=np.float64)), nulls=nulls), # noqa
TColumn(TColumnData(str_col=['a', 'b']), nulls=nulls),
TColumn(TColumnData(str_col=['a', 'b']), nulls=nulls),
TColumn(TColumnData(int_col=[719, 46800]), nulls=nulls),
TColumn(TColumnData(int_col=[1451606400, 1483228800]), nulls=nulls), # noqa
TColumn(TColumnData(int_col=[1451606400, 1483228800]), nulls=nulls)
]
def test_build_table_columnar(self):
from pymapd._pandas_loaders import build_input_columnar
data = pd.DataFrame({"a": [1, 2, 3], "b": [1.1, 2.2, 3.3]})
nulls = [False] * 3
result = build_input_columnar(data, preserve_index=False)
expected = [
TColumn(TColumnData(int_col=[1, 2, 3]), nulls=nulls),
TColumn(TColumnData(real_col=[1.1, 2.2, 3.3]), nulls=nulls)
]
assert_columnar_equal(result[0], expected)
# unreliable since if there is no number outside the int32
# bounds in a column with nulls then we will be assuming int
"int_": np.array([0, 1, None], dtype=np.object),
"bigint_": np.array([0, 9223372036854775807, None],
dtype=np.object),
"double_": np.array([0, 1, None], dtype=np.float64),
"varchar_": ["a", "b", None],
"text_": ['a', 'b', None],
"time_": [datetime.time(0, 11, 59), datetime.time(13), None],
"timestamp_": [pd.Timestamp("2016"), pd.Timestamp("2017"), None],
"date_": [datetime.date(1001, 1, 1), datetime.date(2017, 1, 1),
None],
}, columns=['boolean_', 'int_', 'bigint_',
'double_', 'varchar_', 'text_', 'time_', 'timestamp_',
'date_'])
result = _pandas_loaders.build_input_columnar(data,
preserve_index=False)
nulls = [False, False, True]
bool_na = -128
int_na = -2147483648
bigint_na = -9223372036854775808
ns_na = -9223372037
double_na = 0
expected = [
TColumn(TColumnData(int_col=[1, 0, bool_na]), nulls=nulls),
TColumn(TColumnData(int_col=np.array([0, 1, int_na], dtype=np.int32)), nulls=nulls), # noqa
TColumn(TColumnData(int_col=np.array([0, 9223372036854775807, bigint_na], dtype=np.int64)), nulls=nulls), # noqa
TColumn(TColumnData(real_col=np.array([0, 1, double_na], dtype=np.float64)), nulls=nulls), # noqa
TColumn(TColumnData(str_col=['a', 'b', '']), nulls=nulls),
TColumn(TColumnData(str_col=['a', 'b', '']), nulls=nulls),
TColumnType(col_name='qty',
col_type=TTypeInfo(type=1, encoding=0, nullable=True,
is_array=False, precision=0,
scale=0, comp_param=0),
is_reserved_keyword=False, src_name=''),
TColumnType(col_name='price',
col_type=TTypeInfo(type=3, encoding=0, nullable=True,
is_array=False, precision=0,
scale=0, comp_param=0),
is_reserved_keyword=False, src_name=''),
TColumnType(col_name='vol',
col_type=TTypeInfo(type=3, encoding=0, nullable=True,
is_array=False, precision=0,
scale=0, comp_param=0),
is_reserved_keyword=False, src_name='')]
result = _extract_column_details(data)
expected = [
ColumnDetails(name='date_', type='STR', nullable=True, precision=0,
scale=0, comp_param=32, encoding='DICT',
is_array=False),
ColumnDetails(name='trans', type='STR', nullable=True, precision=0,
scale=0, comp_param=32, encoding='DICT',
is_array=False),
ColumnDetails(name='symbol', type='STR', nullable=True,
precision=0, scale=0, comp_param=32,
encoding='DICT',
is_array=False),
ColumnDetails(name='qty', type='INT', nullable=True, precision=0,
scale=0, comp_param=0, encoding='NONE',
is_array=False),
ColumnDetails(name='price', type='FLOAT', nullable=True,
def test_nonexistant_table_raises(self, nonexistant_table):
result = _translate_exception(nonexistant_table)
assert isinstance(result, DatabaseError)
assert "Exception occurred: Table" in result.args[0]
data = pd.DataFrame({
"boolean_": [True, False],
"smallint_": np.array([0, 1], dtype=np.int16),
"int_": np.array([0, 1], dtype=np.int32),
"bigint_": np.array([0, 1], dtype=np.int64),
"float_": np.array([0, 1], dtype=np.float32),
"double_": np.array([0, 1], dtype=np.float64),
"varchar_": ["a", "b"],
"text_": ['a', 'b'],
"time_": [datetime.time(0, 11, 59), datetime.time(13)],
"timestamp_": [pd.Timestamp("2016"), pd.Timestamp("2017")],
"date_": [datetime.date(2016, 1, 1), datetime.date(2017, 1, 1)],
}, columns=['boolean_', 'smallint_', 'int_', 'bigint_', 'float_',
'double_', 'varchar_', 'text_', 'time_', 'timestamp_',
'date_'])
result = _pandas_loaders.build_row_desc(data)
expected = [
TColumnType(col_name='boolean_',
col_type=TTypeInfo(type=10),
is_reserved_keyword=None),
TColumnType(col_name='smallint_',
col_type=TTypeInfo(type=0),
is_reserved_keyword=None),
TColumnType(col_name='int_',
col_type=TTypeInfo(type=1),
is_reserved_keyword=None),
TColumnType(col_name='bigint_',
col_type=TTypeInfo(type=2)),
TColumnType(col_name='float_',
col_type=TTypeInfo(type=3)),
TColumnType(col_name='double_',
col_type=TTypeInfo(type=5)),
def test_create_non_pandas_raises(self):
with pytest.raises(TypeError) as m:
_pandas_loaders.build_row_desc([(1, 'a'), (2, 'b')])
assert m.match('is not supported for type ')