Allow tests to use the data files in the source tree
authorDebian Science Team <debian-science-maintainers@lists.alioth.debian.org>
Sun, 19 Feb 2023 11:01:48 +0000 (11:01 +0000)
committerRebecca N. Palmer <rebecca_palmer@zoho.com>
Sun, 19 Feb 2023 11:01:48 +0000 (11:01 +0000)
We don't ship these in the package,
but do want to run the tests that use them

Author: Rebecca N. Palmer <rebecca_palmer@zoho.com>
Forwarded: not-needed

Gbp-Pq: Name find_test_data.patch

pandas/conftest.py
pandas/tests/io/formats/style/test_html.py
pandas/tests/util/test_util.py

index cf735bf535dddddab8dc51448145a463423d8d82..6d412c2c88b85296f0ca1f48328ca4665a86450b 100644 (file)
@@ -30,6 +30,7 @@ from decimal import Decimal
 import operator
 import os
 from typing import Callable
+import argparse
 
 from dateutil.tz import (
     tzlocal,
@@ -112,6 +113,7 @@ def pytest_addoption(parser) -> None:
         action="store_true",
         help="Fail if a test is skipped for missing data file.",
     )
+    parser.addoption("--deb-data-root-dir",action="store",help=argparse.SUPPRESS)#for internal use of the Debian CI infrastructure, may change without warning.  Security note: test_pickle can run arbitrary code from this directory
 
 
 def ignore_doctest_warning(item: pytest.Item, path: str, message: str) -> None:
@@ -1141,7 +1143,7 @@ def strict_data_files(pytestconfig):
 
 
 @pytest.fixture
-def datapath(strict_data_files: str) -> Callable[..., str]:
+def datapath(strict_data_files: str,pytestconfig) -> Callable[..., str]:
     """
     Get the path to a data file.
 
@@ -1159,7 +1161,9 @@ def datapath(strict_data_files: str) -> Callable[..., str]:
     ValueError
         If the path doesn't exist and the --strict-data-files option is set.
     """
-    BASE_PATH = os.path.join(os.path.dirname(__file__), "tests")
+    BASE_PATH = pytestconfig.getoption("--deb-data-root-dir",default=None)
+    if BASE_PATH is None:
+        BASE_PATH = os.path.join(os.path.dirname(__file__), "tests")
 
     def deco(*args):
         path = os.path.join(BASE_PATH, *args)
index 4ae95645a075d03136b08e412cd0e87efbc4d7a7..c8b3a3b583da8c0aa5dd3c43f752baa23190e653 100644 (file)
@@ -40,6 +40,7 @@ def tpl_table():
     return env.get_template("html_table.tpl")
 
 
+@pytest.mark.xfail(reason="--deb-data-root-dir is expected to break this",strict=False)
 def test_html_template_extends_options():
     # make sure if templates are edited tests are updated as are setup fixtures
     # to understand the dependency
index d73a789b876f49f8d4a9e0ee23d0dd3bcec57410..8d693e738d8ebe524aaca395cd860d8d8d3cca92 100644 (file)
@@ -57,6 +57,7 @@ def test_datapath_missing(datapath):
         datapath("not_a_file")
 
 
+@pytest.mark.xfail(reason="--deb-data-root-dir intentionally breaks this",strict=False)
 def test_datapath(datapath):
     args = ("io", "data", "csv", "iris.csv")