[pytest]
minversion = 7.0
testpaths =
    sunpy
    docs
norecursedirs =
    .tox
    build
    docs/_build
    docs/generated
    *.egg-info
    examples
    sunpy/_dev
    sunpy/data/test
    .history
    tools
    sunpy/extern
    benchmarks
    .hypothesis
doctest_plus = enabled
doctest_optionflags =
    NORMALIZE_WHITESPACE
    FLOAT_CMP
    ELLIPSIS
addopts =
    --doctest-rst
    -p no:unraisableexception
    -p no:threadexception
    -m "not mpl_image_compare"
    --arraydiff
    --doctest-ignore-import-errors
asdf_schema_tests_enabled = true
asdf_schema_root = sunpy/io/special/asdf/resources/
mpl-results-path = figure_test_images
mpl-use-full-test-name = true
markers =
    remote_data: marks this test function as needing remote data.
    online: marks this test function as needing online connectivity.
    mpl_image_compare: marks this test function as using hash-based Matplotlib figure verification. This mark is not meant to be directly applied, but is instead automatically applied when a test function uses the @sunpy.tests.helpers.figure_test decorator.
    flaky
    array_compare
    xdist_group
remote_data_strict = true
# Pin junit behaviour; we might want to update this to xunit2 at some point
junit_family = xunit1
doctest_subpackage_requires =
    docs/tutorial/acquiring_data/index.rst = astropy>=7.0.0
    docs/tutorial/acquiring_data/jsoc.rst = astropy>=7.0.0
    sunpy/net/cdaweb/cdaweb.py = astropy>=7.0.0
filterwarnings =
    # Turn all warnings into errors so they do not pass silently.
    error
    # Do not fail on pytest config issues (i.e. missing plugins) but do show them
    always::pytest.PytestConfigWarning
    # A list of warnings to ignore follows. If you add to this list, you MUST
    # add a comment or ideally a link to an issue that explains why the warning
    # is being ignored
    # Pandas is a pain
    ignore:(?s).*Pyarrow will become a required dependency of pandas:DeprecationWarning
    # We provide times into the future and erfa raises a warning causing the CI to fail
    ignore:ERFA function *
    # These randomly crop up due to our network stack and one day we need to track down the root cause
    ignore:unclosed event loop:ResourceWarning
    ignore:unclosed transport:ResourceWarning
    ignore:unclosed \<socket:ResourceWarning
    # This is raised when the VSO redirects and we do not want this to stop the CI
    ignore::sunpy.util.exceptions.SunpyConnectionWarning
    # parfive sometimes spews this in oldestdeps
    ignore:This download has been started in a thread which is not the main thread. You will not be able to interrupt the download.
    # pyparsing 3.3 raises dep warnings with old mpl in oldestdeps
    ignore::pyparsing.warnings.PyparsingDeprecationWarning
    # devdeps - numpy 2.5 has deprecated setting .shape
    # https://github.com/quintusdias/glymur/issues/717
    ignore:Setting the shape on a NumPy array has been deprecated.*:DeprecationWarning:glymur.jp2kr
    ignore:Setting the shape on a NumPy array has been deprecated.*:DeprecationWarning:reproject.adaptive.core
    # A transient error from Angle.to_string
    ignore:invalid value encountered in do_format \(vectorized\):RuntimeWarning
