[pytest]
norecursedirs = .* {arch} *.egg third_party
xfail_strict = true
addopts = --strict-markers
markers =
    slow: marks tests as slow (deselect with '-m "not slow"')
    remote_network
filterwarnings =
    error
    # ignore importlib changes which six is unlikely to ever adopt
    ignore:_SixMetaPathImporter.exec_module\(\) not found; falling back to load_module\(\):ImportWarning
    ignore:_SixMetaPathImporter.find_spec\(\) not found; falling back to find_module\(\):ImportWarning
    # ignore urllib3's warning when not using OpenSSL
    ignore:.*currently the 'ssl' module is compiled with.*::urllib3
    # ignore mozinfo deprecation warnings
    ignore:distutils Version classes are deprecated\. Use packaging\.version instead\.:DeprecationWarning:mozinfo
    # ingore mozinfo's dependency on distro
    ignore:distro\.linux_distribution\(\) is deprecated\. It should only be used as a compatibility shim with Python\'s platform\.linux_distribution\(\)\. Please use distro\.id\(\), distro\.version\(\) and distro\.name\(\) instead\.:DeprecationWarning
    # ignore mozversion deprecation warnings
    ignore:This method will be removed in .*\.\s+Use 'parser\.read_file\(\)' instead\.:DeprecationWarning:mozversion
    # ignore mozversion not cleanly closing .ini files
    ignore:unclosed file.*\.ini:ResourceWarning:mozversion
    # mozrunner uses telnetlib module
    ignore:'telnetlib' is deprecated and slated for removal in Python 3:DeprecationWarning
    # https://github.com/web-platform-tests/wpt/issues/39366
    always:The metaschema specified by \$schema was not found\. Using the latest draft to validate, but this will raise an error in the future\.:DeprecationWarning
    # https://github.com/web-platform-tests/wpt/issues/39359
    always:'cgi' is deprecated and slated for removal in Python 3:DeprecationWarning
    # https://github.com/web-platform-tests/wpt/issues/39373
    always:the imp module is deprecated in favour of importlib:DeprecationWarning
    # https://github.com/web-platform-tests/wpt/issues/39827
    always:pkg_resources is deprecated as an API:DeprecationWarning
    # taskcluster and jsone use datetime.utcnow()
    ignore:datetime\.datetime\.utcnow\(\) is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC:DeprecationWarning:jsone
    ignore:datetime\.datetime\.utcnow\(\) is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC:DeprecationWarning:taskcluster
    # mozfile not yet updated to pass a filter argument to tarfile.extract
    ignore:Python 3\.14 will, by default, filter extracted tar archives and reject files or modify their metadata\. Use the filter argument to control this behavior\.:DeprecationWarning
