def test_read_special_strings(connection, xyz): """Tests empty and special UTF-8 string values""" date = pd.to_datetime(datetime.date(2017, 1, 1)) data = [[1, 'joe\\\t\\t\t\u00A0jane\njack', date], [2, 'james\u2620johnny', date], [3, '', date]] expected = pd.DataFrame(data, columns=['id', 'sss', 'date']) to_clickhouse(expected, 'xyz', index=False, connection=connection) query = 'SELECT * FROM {db}.xyz WHERE id IN (1, 2, 3)' df = read_clickhouse(query, connection=connection) assert_frame_equal(df, expected)
def test_write_read_column_order(connection, xyz2): date = pd.to_datetime(datetime.date(2017, 1, 1)) data = [[1, 'joe\\\t\\t\t\u00A0jane\njack', 15, date, 125]] columns = ['id', 'sss', 'joe', 'date', 'jessy'] expected = pd.DataFrame(data, columns=columns) expected['joe'] = expected['joe'].astype(np.uint64) expected['jessy'] = expected['jessy'].astype(np.int32) to_clickhouse(expected, 'xyz2', index=False, connection=connection) query = 'SELECT * FROM {db}.xyz2 WHERE id=1;' df = read_clickhouse(query, connection=connection) assert_frame_equal(df.reindex(sorted(df.columns), axis=1), expected.reindex(sorted(df.columns), axis=1))
def test_read_special_strings(connection, xyz): """Tests empty and special UTF-8 string values""" date = pd.to_datetime(datetime.date(2017, 1, 1)) data = [ [1, "joe\\\t\\t\t\u00A0jane\njack", date], [2, "james\u2620johnny", date], [3, "", date], ] expected = pd.DataFrame(data, columns=["id", "sss", "date"]) to_clickhouse(expected, "xyz", index=False, connection=connection) query = "SELECT * FROM {db}.xyz WHERE id IN (1, 2, 3)" df = read_clickhouse(query, connection=connection) assert_frame_equal(df, expected)
def test_query(df, decimals, connection): affected_rows = to_clickhouse(df, table='decimals', connection=connection) assert affected_rows == 100 df_ = read_clickhouse('SELECT B, C FROM {db}.decimals', index_col='B', connection=connection) assert df_.shape == (100, 1)
def test_write_read_column_order(connection, xyz2): date = pd.to_datetime(datetime.date(2017, 1, 1)) data = [[1, "joe\\\t\\t\t\u00A0jane\njack", 15, date, 125]] columns = ["id", "sss", "joe", "date", "jessy"] expected = pd.DataFrame(data, columns=columns) expected["joe"] = expected["joe"].astype(np.uint64) expected["jessy"] = expected["jessy"].astype(np.int32) to_clickhouse(expected, "xyz2", index=False, connection=connection) query = "SELECT * FROM {db}.xyz2 WHERE id=1;" df = read_clickhouse(query, connection=connection) assert_frame_equal( df.reindex(sorted(df.columns), axis=1), expected.reindex(sorted(df.columns), axis=1), )
def test_insert(df, decimals, connection): affected_rows = to_clickhouse(df, table='decimals', connection=connection) assert affected_rows == 100 df_ = read_clickhouse('SELECT * FROM {db}.decimals', index_col='A', connection=connection) assert df.shape == df_.shape assert df.columns.tolist() == df_.columns.tolist()
def test_nullable(connection, nullable): df = pd.DataFrame({ "A": np.arange(5, dtype="int64"), "B": np.array([0.0, np.nan, 2.2, 3.3, 4.4], dtype="float32"), "C": pd.array([0, 1, None, 3, 4], dtype=pd.Int32Dtype()), "D": pd.Timestamp("2017-05-03"), }) df = df.set_index("A") affected_rows = to_clickhouse(df, table="nullable", connection=connection) assert affected_rows == 5 df_ = read_clickhouse("SELECT A, B, C, D FROM {db}.nullable", index_col="A", connection=connection) assert_frame_equal(df_, df)