Fix or skip s390x failures
This commit is contained in:
parent
a09cd10c3c
commit
39863023ee
|
@ -0,0 +1,70 @@
|
||||||
|
From a7a17abcd9f03651ae07a0aa138668fd49287466 Mon Sep 17 00:00:00 2001
|
||||||
|
From: "Benjamin A. Beasley" <code@musicinmybrain.net>
|
||||||
|
Date: Fri, 25 Nov 2022 09:06:56 -0500
|
||||||
|
Subject: [PATCH] TST: Fix some little-endian assumptions
|
||||||
|
|
||||||
|
See previous PR#46681.
|
||||||
|
---
|
||||||
|
pandas/tests/arrays/floating/test_arithmetic.py | 2 +-
|
||||||
|
pandas/tests/frame/methods/test_to_records.py | 14 ++++++++++++--
|
||||||
|
pandas/tests/scalar/timedelta/test_arithmetic.py | 2 +-
|
||||||
|
3 files changed, 14 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/pandas/tests/arrays/floating/test_arithmetic.py b/pandas/tests/arrays/floating/test_arithmetic.py
|
||||||
|
index ec7419d6346a8..fdf2b00bdbac1 100644
|
||||||
|
--- a/pandas/tests/arrays/floating/test_arithmetic.py
|
||||||
|
+++ b/pandas/tests/arrays/floating/test_arithmetic.py
|
||||||
|
@@ -162,7 +162,7 @@ def test_error_invalid_values(data, all_arithmetic_operators):
|
||||||
|
"not all arguments converted during string formatting",
|
||||||
|
"can't multiply sequence by non-int of type 'float'",
|
||||||
|
"ufunc 'subtract' cannot use operands with types dtype",
|
||||||
|
- r"ufunc 'add' cannot use operands with types dtype\('<M8\[ns\]'\)",
|
||||||
|
+ rf"ufunc 'add' cannot use operands with types dtype\('{tm.ENDIAN}M8\[ns\]'\)",
|
||||||
|
r"ufunc 'add' cannot use operands with types dtype\('float\d{2}'\)",
|
||||||
|
"cannot subtract DatetimeArray from ndarray",
|
||||||
|
]
|
||||||
|
diff --git a/pandas/tests/frame/methods/test_to_records.py b/pandas/tests/frame/methods/test_to_records.py
|
||||||
|
index 32cccddc9d515..701063c277226 100644
|
||||||
|
--- a/pandas/tests/frame/methods/test_to_records.py
|
||||||
|
+++ b/pandas/tests/frame/methods/test_to_records.py
|
||||||
|
@@ -96,7 +96,13 @@ def test_to_records_index_name(self):
|
||||||
|
+ [np.asarray(df.iloc[:, i]) for i in range(3)],
|
||||||
|
dtype={
|
||||||
|
"names": ["A", "level_1", "0", "1", "2"],
|
||||||
|
- "formats": ["O", "O", "<f8", "<f8", "<f8"],
|
||||||
|
+ "formats": [
|
||||||
|
+ "O",
|
||||||
|
+ "O",
|
||||||
|
+ f"{tm.ENDIAN}f8",
|
||||||
|
+ f"{tm.ENDIAN}f8",
|
||||||
|
+ f"{tm.ENDIAN}f8",
|
||||||
|
+ ],
|
||||||
|
},
|
||||||
|
)
|
||||||
|
tm.assert_numpy_array_equal(result, expected)
|
||||||
|
@@ -123,7 +129,11 @@ def test_to_records_index_dtype(self):
|
||||||
|
("2022-01-01", "2022-01-01", "2022-01-01"),
|
||||||
|
("2022-01-02", "2022-01-02", "2022-01-02"),
|
||||||
|
],
|
||||||
|
- dtype=[("1", "<M8[ns]"), ("2", "<M8[ns]"), ("3", "<M8[ns]")],
|
||||||
|
+ dtype=[
|
||||||
|
+ ("1", f"{tm.ENDIAN}M8[ns]"),
|
||||||
|
+ ("2", f"{tm.ENDIAN}M8[ns]"),
|
||||||
|
+ ("3", f"{tm.ENDIAN}M8[ns]"),
|
||||||
|
+ ],
|
||||||
|
)
|
||||||
|
|
||||||
|
result = df.to_records(index=False)
|
||||||
|
diff --git a/pandas/tests/scalar/timedelta/test_arithmetic.py b/pandas/tests/scalar/timedelta/test_arithmetic.py
|
||||||
|
index 1c3868bc85fd5..526b558ecb813 100644
|
||||||
|
--- a/pandas/tests/scalar/timedelta/test_arithmetic.py
|
||||||
|
+++ b/pandas/tests/scalar/timedelta/test_arithmetic.py
|
||||||
|
@@ -435,7 +435,7 @@ def test_td_mul_td64_ndarray_invalid(self):
|
||||||
|
|
||||||
|
msg = (
|
||||||
|
"ufunc '?multiply'? cannot use operands with types "
|
||||||
|
- r"dtype\('<m8\[ns\]'\) and dtype\('<m8\[ns\]'\)"
|
||||||
|
+ rf"dtype\('{tm.ENDIAN}m8\[ns\]'\) and dtype\('{tm.ENDIAN}m8\[ns\]'\)"
|
||||||
|
)
|
||||||
|
with pytest.raises(TypeError, match=msg):
|
||||||
|
td * other
|
|
@ -74,6 +74,10 @@ URL: https://pandas.pydata.org/
|
||||||
# The GitHub archive contains tests; the PyPI sdist does not.
|
# The GitHub archive contains tests; the PyPI sdist does not.
|
||||||
Source0: https://github.com/pandas-dev/pandas/archive/v%{version}/pandas-%{version}.tar.gz
|
Source0: https://github.com/pandas-dev/pandas/archive/v%{version}/pandas-%{version}.tar.gz
|
||||||
|
|
||||||
|
# Fix some little-endian assumptions in the tests
|
||||||
|
# https://github.com/pandas-dev/pandas/pull/49913
|
||||||
|
Patch: https://github.com/pandas-dev/pandas/pull/49913.patch
|
||||||
|
|
||||||
%global _description %{expand:
|
%global _description %{expand:
|
||||||
pandas is an open source, BSD-licensed library providing
|
pandas is an open source, BSD-licensed library providing
|
||||||
high-performance, easy-to-use data structures and data
|
high-performance, easy-to-use data structures and data
|
||||||
|
@ -481,14 +485,6 @@ m="${m-}${m+ and }not single"
|
||||||
k="${k-}${k+ and }not (TestFloatSubtype and test_subtype_integer_errors)"
|
k="${k-}${k+ and }not (TestFloatSubtype and test_subtype_integer_errors)"
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%ifarch s390x
|
|
||||||
# TODO: Why does this fail?
|
|
||||||
#
|
|
||||||
# > os.fsync(self._handle.fileno())
|
|
||||||
# E OverflowError: Python int too large to convert to C int
|
|
||||||
k="${k-}${k+ and }not test_flush"
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%ifarch %{arm64}
|
%ifarch %{arm64}
|
||||||
# TODO: Why does this fail?
|
# TODO: Why does this fail?
|
||||||
# > with pytest.raises(ValueError, match="external reference.*"):
|
# > with pytest.raises(ValueError, match="external reference.*"):
|
||||||
|
@ -578,6 +574,43 @@ k="${k-}${k+ and }not (TestWeek and test_apply_out_of_range)"
|
||||||
k="${k-}${k+ and }not (TestDateRanges and test_date_range_int64_overflow_stride_endpoint_different_signs)"
|
k="${k-}${k+ and }not (TestDateRanges and test_date_range_int64_overflow_stride_endpoint_different_signs)"
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%ifarch s390x
|
||||||
|
# Note that pandas does not test big-endian support but will happily accept
|
||||||
|
# patches to improve it:
|
||||||
|
# https://github.com/pandas-dev/pandas/issues/4737#issuecomment-1090931741
|
||||||
|
|
||||||
|
# TODO: Why does this fail?
|
||||||
|
#
|
||||||
|
# > os.fsync(self._handle.fileno())
|
||||||
|
# E OverflowError: Python int too large to convert to C int
|
||||||
|
k="${k-}${k+ and }not test_flush"
|
||||||
|
|
||||||
|
# These are a cluster of similar pyarrow/parquet tests with apparent endianness
|
||||||
|
# issues. It is not immediately obvious where the bug is—in the library or in
|
||||||
|
# the tests?
|
||||||
|
k="${k-}${k+ and }not (TestBasic and test_write_index[pyarrow])"
|
||||||
|
k="${k-}${k+ and }not (TestBasic and test_multiindex_with_columns)"
|
||||||
|
k="${k-}${k+ and }not (TestBasic and test_write_column_multiindex_string)"
|
||||||
|
k="${k-}${k+ and }not (TestBasic and test_write_column_index_string)"
|
||||||
|
k="${k-}${k+ and }not (TestBasic and test_use_nullable_dtypes[pyarrow])"
|
||||||
|
k="${k-}${k+ and }not (TestParquetPyArrow and test_basic)"
|
||||||
|
k="${k-}${k+ and }not (TestParquetPyArrow and test_to_bytes_without_path_or_buf_provided)"
|
||||||
|
k="${k-}${k+ and }not (TestParquetPyArrow and test_categorical)"
|
||||||
|
k="${k-}${k+ and }not (TestParquetPyArrow and test_additional_extension_arrays)"
|
||||||
|
k="${k-}${k+ and }not (TestParquetPyArrow and test_pyarrow_backed_string_array[python])"
|
||||||
|
k="${k-}${k+ and }not (TestParquetPyArrow and test_pyarrow_backed_string_array[pyarrow])"
|
||||||
|
k="${k-}${k+ and }not (TestParquetPyArrow and test_additional_extension_types)"
|
||||||
|
k="${k-}${k+ and }not (TestParquetPyArrow and test_timezone_aware_index[timezone_aware_date_list0])"
|
||||||
|
|
||||||
|
# Similarly, there are a cluster of similar stata test failures for which the
|
||||||
|
# root cause is not immediately obvious.
|
||||||
|
k="${k-}${k+ and }not (TestStata and test_writer_117)"
|
||||||
|
k="${k-}${k+ and }not (TestStata and test_convert_strl_name_swap)"
|
||||||
|
k="${k-}${k+ and }not (TestStata and test_strl_latin1)"
|
||||||
|
# Fails for [118], [119], and [None]
|
||||||
|
k="${k-}${k+ and }not (TestStata and test_utf8_writer)"
|
||||||
|
%endif
|
||||||
|
|
||||||
# Ensure pytest doesn’t find the “un-built” library. We can get away with this
|
# Ensure pytest doesn’t find the “un-built” library. We can get away with this
|
||||||
# approach because the tests are also in the installed library. We can’t simply
|
# approach because the tests are also in the installed library. We can’t simply
|
||||||
# “cd” to the buildroot’s python3_sitearch because testing leaves files in the
|
# “cd” to the buildroot’s python3_sitearch because testing leaves files in the
|
||||||
|
|
Loading…
Reference in New Issue