def format_number(number, locale=LC_NUMERIC):
u"""Return the given number formatted for a specific locale.
- >>> format_number(1099, locale='en_US')
+ >>> format_number(1099, locale='en_US') # doctest: +SKIP
u'1,099'
- >>> format_number(1099, locale='de_DE')
+ >>> format_number(1099, locale='de_DE') # doctest: +SKIP
u'1.099'
.. deprecated:: 2.6.0
+from pathlib import Path
+
from _pytest.doctest import DoctestModule
-from py.path import local
collect_ignore = ['tests/messages/data', 'setup.py']
-babel_path = local(__file__).dirpath().join('babel')
+babel_path = Path(__file__).parent / 'babel'
+
+
+# Via the stdlib implementation of Path.is_relative_to in Python 3.9
+def _is_relative(p1: Path, p2: Path) -> bool:
+ try:
+ p1.relative_to(p2)
+ return True
+ except ValueError:
+ return False
-def pytest_collect_file(path, parent):
- if babel_path.common(path) == babel_path:
- if path.ext == ".py":
- # TODO: remove check when dropping support for old Pytest
- if hasattr(DoctestModule, "from_parent"):
- return DoctestModule.from_parent(parent, fspath=path)
- return DoctestModule(path, parent)
+def pytest_collect_file(file_path: Path, parent):
+ if _is_relative(file_path, babel_path) and file_path.suffix == '.py':
+ return DoctestModule.from_parent(parent, path=file_path)
(module, name))
with open(filename, 'rb') as f:
- return Unpickler(f).load()
+ assert Unpickler(f).load()
def test_issue_601_no_language_name_but_has_variant():