ibis-bigquery icon indicating copy to clipboard operation
ibis-bigquery copied to clipboard

Bigquery tests failing

Open datapythonista opened this issue 5 years ago • 8 comments

The Bigquery build seems to be finally working correctly, but some of the tests are failing:

FAILED ibis/tests/all/test_aggregation.py::test_reduction_ops[BigQuery-no_cond-covar]
FAILED ibis/tests/all/test_aggregation.py::test_reduction_ops[BigQuery-is_in-covar]
FAILED ibis/tests/all/test_aggregation.py::test_topk_filter_op[BigQuery-string_col_filter_top3]
FAILED ibis/tests/all/test_array.py::test_array_concat[BigQuery] - ValueError...
FAILED ibis/tests/all/test_generic.py::test_fillna_nullif[BigQuery-expr2-None]
FAILED ibis/tests/all/test_numeric.py::test_complex_math_functions_columns[BigQuery-ln]
FAILED ibis/tests/all/test_numeric.py::test_complex_math_functions_columns[BigQuery-log10]
FAILED ibis/tests/all/test_string.py::test_string[BigQuery-split] - ValueErro...
FAILED ibis/tests/all/test_temporal.py::test_timestamp_extract[BigQuery-epoch_seconds]
FAILED ibis/bigquery/tests/test_client.py::test_scalar_param_array - ValueErr...
FAILED ibis/bigquery/tests/test_client.py::test_scalar_param_nested - Asserti...
FAILED ibis/bigquery/tests/test_client.py::test_cross_project_query - google....
FAILED ibis/bigquery/tests/test_client.py::test_approx_median - assert 6 == 7.0
FAILED ibis/bigquery/tests/test_compiler.py::test_cov - AssertionError: asser...

See https://github.com/ibis-project/ibis/runs/1067434574?check_suite_focus=true#step:5:1981

@tswast do you want to have a look?

datapythonista avatar Sep 03 '20 15:09 datapythonista

test_timestamp_extract looks like a pretty simple data type difference: expects int32, gets int64. Should probably expect int64, since there isn't a 32-bit integer type for BigQuery.

The others look a little more complex to fix and will take some deeper investigation.

tswast avatar Sep 03 '20 17:09 tswast

Re: FAILED ibis/tests/all/test_array.py::test_array_concat[BigQuery] - ValueError...

It looks like arrays are coming back as numpy arrays in the BigQuery backend. Not sure if this is intended or not. If it is intended, updating the test to use assert_series_equal helps.

result = backend.default_series_rename(pd.Series(con.execute(expr))
expected = backend.default_series_rename(pd.Series([1, 2, 3, 2, 1]))
backend.assert_series_equal(result, expected)

tswast avatar Sep 03 '20 20:09 tswast

@tswast if the remaining tests are not trivial to fix, may be we can xfail them for now, so we get green builds?

datapythonista avatar Sep 07 '20 15:09 datapythonista

Not a bad idea to make it easier to catch new failures.

Some of these are true failures (perhaps caused by changes in the Impala backend, since the BQ backend somewhat strangely subclasses from that), so we should prioritize fixing these sooner than later.

tswast avatar Sep 08 '20 13:09 tswast

since the BQ backend somewhat strangely subclasses from that

I didn't know that, that's strange...

Up to you on what to do. If we can get the actual bugs fixed in the short term that's surely better. But if it can take weeks or months, probably worth to xfail then, so we can detect regressions fast and not get extra bugs.

datapythonista avatar Sep 08 '20 14:09 datapythonista

I see some in test_aggregation.py have multiple markings:

@pytest.mark.xfail_unsupported
# Issues ibis-project/ibis#2133 ibis-project/ibis#2132# ibis-project/ibis#2133
@pytest.mark.xfail_backends([Clickhouse, MySQL, Postgres])
@pytest.mark.skip_backends([SQLite], reason='Issue ibis-project/ibis#2128')
def test_topk_filter_op(backend, alltypes, df, result_fn, expected_fn):

Do you know which we should use?

tswast avatar Sep 08 '20 14:09 tswast

I think adding bigquery to @pytest.mark.xfail_backends would be the best one.

xfail_unsupported would catch it automatically if the features raises one of the "unsupported" exceptions. And skip_backends would be more appropriate if this is something we have no interest in fixing.

datapythonista avatar Sep 09 '20 10:09 datapythonista

The covar tests appear to be fixed after ibis-project/ibis#2367, but several new test failures popped up.

FAILED ibis/tests/all/test_aggregation.py::test_aggregate[BigQuery-mean] - As...
FAILED ibis/tests/all/test_aggregation.py::test_aggregate[BigQuery-complex_sum]
FAILED ibis/tests/all/test_aggregation.py::test_aggregate_grouped[BigQuery-complex_sum]
FAILED ibis/tests/all/test_aggregation.py::test_reduction_ops[BigQuery-no_cond-count]
FAILED ibis/tests/all/test_aggregation.py::test_reduction_ops[BigQuery-no_cond-sum]
FAILED ibis/tests/all/test_aggregation.py::test_reduction_ops[BigQuery-no_cond-mean]
FAILED ibis/tests/all/test_aggregation.py::test_reduction_ops[BigQuery-no_cond-std]
FAILED ibis/tests/all/test_aggregation.py::test_reduction_ops[BigQuery-no_cond-var]
FAILED ibis/tests/all/test_aggregation.py::test_reduction_ops[BigQuery-no_cond-std_pop]
FAILED ibis/tests/all/test_aggregation.py::test_reduction_ops[BigQuery-no_cond-var_pop]
FAILED ibis/tests/all/test_aggregation.py::test_reduction_ops[BigQuery-no_cond-covar]
FAILED ibis/tests/all/test_aggregation.py::test_reduction_ops[BigQuery-is_in-count]
FAILED ibis/tests/all/test_aggregation.py::test_reduction_ops[BigQuery-is_in-sum]
FAILED ibis/tests/all/test_aggregation.py::test_reduction_ops[BigQuery-is_in-mean]
FAILED ibis/tests/all/test_aggregation.py::test_reduction_ops[BigQuery-is_in-std]
FAILED ibis/tests/all/test_aggregation.py::test_reduction_ops[BigQuery-is_in-var]
FAILED ibis/tests/all/test_aggregation.py::test_reduction_ops[BigQuery-is_in-std_pop]
FAILED ibis/tests/all/test_aggregation.py::test_reduction_ops[BigQuery-is_in-var_pop]
FAILED ibis/tests/all/test_aggregation.py::test_reduction_ops[BigQuery-is_in-covar]
FAILED ibis/tests/all/test_aggregation.py::test_group_concat[BigQuery-group_concat]
FAILED ibis/tests/all/test_aggregation.py::test_topk_op[BigQuery-string_col_top3]
FAILED ibis/tests/all/test_aggregation.py::test_topk_filter_op[BigQuery-string_col_filter_top3]
FAILED ibis/tests/all/test_array.py::test_array_concat[BigQuery] - ValueError...
FAILED ibis/tests/all/test_generic.py::test_identical_to[BigQuery] - Assertio...
FAILED ibis/tests/all/test_generic.py::test_isin[BigQuery-int_col-elements0]
FAILED ibis/tests/all/test_generic.py::test_isin[BigQuery-int_col-elements1]
FAILED ibis/tests/all/test_generic.py::test_isin[BigQuery-string_col-elements2]
FAILED ibis/tests/all/test_generic.py::test_isin[BigQuery-string_col-elements3]
FAILED ibis/tests/all/test_generic.py::test_isin[BigQuery-int_col-elements4]
FAILED ibis/tests/all/test_generic.py::test_isin[BigQuery-int_col-elements5]
FAILED ibis/tests/all/test_generic.py::test_notin[BigQuery-int_col-elements0]
FAILED ibis/tests/all/test_generic.py::test_notin[BigQuery-int_col-elements1]
FAILED ibis/tests/all/test_generic.py::test_notin[BigQuery-string_col-elements2]
FAILED ibis/tests/all/test_generic.py::test_notin[BigQuery-string_col-elements3]
FAILED ibis/tests/all/test_generic.py::test_notin[BigQuery-int_col-elements4]
FAILED ibis/tests/all/test_generic.py::test_notin[BigQuery-int_col-elements5]
FAILED ibis/tests/all/test_string.py::test_string[BigQuery-split] - ValueErro...
FAILED ibis/tests/all/test_temporal.py::test_timestamp_extract[BigQuery-week_of_year]
FAILED ibis/tests/all/test_temporal.py::test_day_of_week_column_group_by[BigQuery-<lambda>-<lambda>0]
FAILED ibis/tests/all/test_temporal.py::test_day_of_week_column_group_by[BigQuery-<lambda>-<lambda>1]
FAILED ibis/tests/all/test_union.py::test_union[BigQuery-False] - AssertionEr...
FAILED ibis/tests/all/test_union.py::test_union[BigQuery-True] - AssertionErr...
FAILED ibis/tests/all/test_window.py::test_window[BigQuery-lag] - AssertionEr...
FAILED ibis/tests/all/test_window.py::test_window[BigQuery-lead] - AssertionE...
FAILED ibis/tests/all/test_window.py::test_window[BigQuery-rank] - AssertionE...
FAILED ibis/tests/all/test_window.py::test_window[BigQuery-dense_rank] - Asse...
FAILED ibis/tests/all/test_window.py::test_window[BigQuery-first] - Assertion...
FAILED ibis/tests/all/test_window.py::test_window[BigQuery-last] - AssertionE...
FAILED ibis/tests/all/test_window.py::test_window[BigQuery-row_number] - Asse...
FAILED ibis/tests/all/test_window.py::test_window[BigQuery-cumsum] - Assertio...
FAILED ibis/tests/all/test_window.py::test_window[BigQuery-cummean] - Asserti...
FAILED ibis/tests/all/test_window.py::test_window[BigQuery-cummin] - Assertio...
FAILED ibis/tests/all/test_window.py::test_window[BigQuery-cummax] - Assertio...
FAILED ibis/tests/all/test_window.py::test_window[BigQuery-cumany] - Assertio...
FAILED ibis/tests/all/test_window.py::test_window[BigQuery-cumnotany] - Asser...
FAILED ibis/tests/all/test_window.py::test_window[BigQuery-cumall] - Assertio...
FAILED ibis/tests/all/test_window.py::test_window[BigQuery-cumnotall] - Asser...
FAILED ibis/tests/all/test_window.py::test_window[BigQuery-sum] - AssertionEr...
FAILED ibis/tests/all/test_window.py::test_window[BigQuery-mean] - AssertionE...
FAILED ibis/tests/all/test_window.py::test_window[BigQuery-min] - AssertionEr...
FAILED ibis/tests/all/test_window.py::test_window[BigQuery-max] - AssertionEr...
FAILED ibis/tests/all/test_window.py::test_window[BigQuery-count] - Assertion...
FAILED ibis/tests/all/test_window.py::test_bounded_following_window[BigQuery]
FAILED ibis/tests/all/test_window.py::test_bounded_preceding_windows[BigQuery-preceding-2-following-0]
FAILED ibis/tests/all/test_window.py::test_bounded_preceding_windows[BigQuery-trailing-2]
FAILED ibis/tests/all/test_window.py::test_unbounded_window[BigQuery-mean] - ...
FAILED ibis/bigquery/tests/test_client.py::test_simple_aggregate_execute - As...
FAILED ibis/bigquery/tests/test_client.py::test_scalar_param_string - Asserti...
FAILED ibis/bigquery/tests/test_client.py::test_scalar_param_int64 - Assertio...
FAILED ibis/bigquery/tests/test_client.py::test_scalar_param_double - Asserti...
FAILED ibis/bigquery/tests/test_client.py::test_scalar_param_boolean - Assert...
FAILED ibis/bigquery/tests/test_client.py::test_scalar_param_timestamp[2009-01-20 01:02:03]
FAILED ibis/bigquery/tests/test_client.py::test_scalar_param_timestamp[timestamp_value1]
FAILED ibis/bigquery/tests/test_client.py::test_scalar_param_timestamp[timestamp_value2]
FAILED ibis/bigquery/tests/test_client.py::test_scalar_param_date[2009-01-20]
FAILED ibis/bigquery/tests/test_client.py::test_scalar_param_date[date_value1]
FAILED ibis/bigquery/tests/test_client.py::test_scalar_param_date[date_value2]
FAILED ibis/bigquery/tests/test_client.py::test_scalar_param_array - ValueErr...
FAILED ibis/bigquery/tests/test_client.py::test_scalar_param_nested - Asserti...
FAILED ibis/bigquery/tests/test_client.py::test_cross_project_query - google....

https://github.com/ibis-project/ibis/runs/1106729769?check_suite_focus=true

tswast avatar Sep 14 '20 13:09 tswast