[Bug 2144756] Re: dep-logic ftbfs in unstable

Bug Watch Updater 2144756 at bugs.launchpad.net
Wed May 20 04:33:40 UTC 2026


** Changed in: dep-logic (Debian)
       Status: Confirmed => Fix Released

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to python-packaging in Ubuntu.
https://bugs.launchpad.net/bugs/2144756

Title:
  dep-logic ftbfs in unstable

Status in dep-logic package in Ubuntu:
  New
Status in python-packaging package in Ubuntu:
  Invalid
Status in dep-logic package in Debian:
  Fix Released

Bug description:
  Imported from Debian bug http://bugs.debian.org/1131097:

  Package: src:dep-logic
  Version: 0.5.2-1
  Severity: serious
  Tags: sid forky ftbfs

  dep-logic ftbfs in unstable:

  [...]
  I: pybuild base:385: cd 
  /home/packages/tmp/o/dep-logic-0.5.2/.pybuild/cpython3_3.14_dep-logic/build; 
  python3.14 -m pytest tests
  ============================= test session starts 
  ==============================
  platform linux -- Python 3.14.3, pytest-9.0.2, pluggy-1.6.0
  rootdir: 
  /home/packages/tmp/o/dep-logic-0.5.2/.pybuild/cpython3_3.14_dep-logic/build
  configfile: pyproject.toml
  plugins: typeguard-4.4.4, timeout-2.4.0, flaky-3.8.1, asyncio-1.3.0, 
  mock-3.15.1
  asyncio: mode=Mode.STRICT, debug=False, 
  asyncio_default_fixture_loop_scope=None, 
  asyncio_default_test_loop_scope=function
  collected 2479 items

  tests/marker/test_common.py ............................ 
  [  1%]
  tests/marker/test_compound.py .......................................... 
  [  2%]
  ........................................................................ 
  [  5%]
  ................................................. 
  [  7%]
  tests/marker/test_evaluation.py .........................F.............. 
  [  9%]
  ......................................... 
  [ 10%]
  tests/marker/test_expression.py ........................................ 
  [ 12%]
  ... 
  [ 12%]
  tests/marker/test_parsing.py ........................................... 
  [ 14%]
  ........................................................................ 
  [ 17%]
  ........................................................................ 
  [ 20%]
  ........................................................................ 
  [ 23%]
  ........................................................................ 
  [ 26%]
  ........................................................................ 
  [ 28%]
  ........................................................................ 
  [ 31%]
  ........................................................................ 
  [ 34%]
  ........................................................................ 
  [ 37%]
  ........................................................................ 
  [ 40%]
  ........................................................................ 
  [ 43%]
  ........................................................................ 
  [ 46%]
  ........................................................................ 
  [ 49%]
  ........................................................................ 
  [ 52%]
  ........................................................................ 
  [ 55%]
  ........................................................................ 
  [ 58%]
  ........................................................................ 
  [ 60%]
  ........................................................................ 
  [ 63%]
  ........................................................................ 
  [ 66%]
  ........................................................................ 
  [ 69%]
  ........................................................................ 
  [ 72%]
  ........................................................................ 
  [ 75%]
  ........................................................................ 
  [ 78%]
  ........................................................................ 
  [ 81%]
  ........................................................................ 
  [ 84%]
  ........................................................................ 
  [ 87%]
  ........................................................................ 
  [ 89%]
  ........................................................................ 
  [ 92%]
  ........................................................... 
  [ 95%]
  tests/specifier/test_arbitrary.py ..............F.. 
  [ 95%]
  tests/specifier/test_range.py .......................................... 
  [ 97%]
  ................... 
  [ 98%]
  tests/specifier/test_union.py ............... 
  [ 98%]
  tests/tags/test_platform.py .............. 
  [ 99%]
  tests/tags/test_tags.py ........... 
  [100%]

  =================================== FAILURES 
  ===================================
  _______ test_evaluate_extra[platform_release >= '6'-environment10-True] 
  ________

  marker_string = "platform_release >= '6'"
  environment = {'platform_release': '6.1-foobar'}, expected = True

       @pytest.mark.parametrize(
           ("marker_string", "environment", "expected"),
           [
               (f"os.name == '{os.name}'", None, True),
               ("sys.platform == 'win32'", {"sys_platform": "linux2"}, False),
               ("platform.version in 'Ubuntu'", {"platform_version": 
  "#39"}, False),
               ("platform.machine=='x86_64'", {"platform_machine": 
  "x86_64"}, True),
               (
                   "platform.python_implementation=='Jython'",
                   {"platform_python_implementation": "CPython"},
                   False,
               ),
               (
                   "python_version == '2.5' and 
  platform.python_implementation!= 'Jython'",
                   {"python_version": "2.7"},
                   False,
               ),
               (
                   (
                       "platform_machine in 'x86_64 X86_64 aarch64 AARCH64 
  ppc64le PPC64LE"
                       " amd64 AMD64 win32 WIN32'"
                   ),
                   {"platform_machine": "foo"},
                   False,
               ),
               (
                   (
                       "platform_machine in 'x86_64 X86_64 aarch64 AARCH64 
  ppc64le PPC64LE"
                       " amd64 AMD64 win32 WIN32'"
                   ),
                   {"platform_machine": "x86_64"},
                   True,
               ),
               (
                   (
                       "platform_machine not in 'x86_64 X86_64 aarch64 
  AARCH64 ppc64le PPC64LE"
                       " amd64 AMD64 win32 WIN32'"
                   ),
                   {"platform_machine": "foo"},
                   True,
               ),
               (
                   (
                       "platform_machine not in 'x86_64 X86_64 aarch64 
  AARCH64 ppc64le PPC64LE"
                       " amd64 AMD64 win32 WIN32'"
                   ),
                   {"platform_machine": "x86_64"},
                   False,
               ),
               ("platform_release >= '6'", {"platform_release": 
  "6.1-foobar"}, True),
               # extras
               # single extra
               ("extra != 'security'", {"extra": "quux"}, True),
               ("extra != 'security'", {"extra": "security"}, False),
               ("extra != 'security'", {}, True),
               ("extra != 'security'", {"platform_machine": "x86_64"}, True),
               # normalization
               ("extra == 'Security.1'", {"extra": "security-1"}, True),
               ("extra == 'a'", {}, False),
               ("extra != 'a'", {}, True),
               ("extra == 'a' and extra == 'b'", {}, False),
               ("extra == 'a' or extra == 'b'", {}, False),
               ("extra != 'a' and extra != 'b'", {}, True),
               ("extra != 'a' or extra != 'b'", {}, True),
               ("extra != 'a' and extra == 'b'", {}, False),
               ("extra != 'a' or extra == 'b'", {}, True),
               # multiple extras
               ("extra == 'a'", {"extra": ("a", "b")}, True),
               ("extra == 'a'", {"extra": ("b", "c")}, False),
               ("extra != 'a'", {"extra": ("a", "b")}, False),
               ("extra != 'a'", {"extra": ("b", "c")}, True),
               ("extra == 'a' and extra == 'b'", {"extra": ("a", "b", 
  "c")}, True),
               ("extra == 'a' and extra == 'b'", {"extra": ("a", "c")}, 
  False),
               ("extra == 'a' or extra == 'b'", {"extra": ("a", "c")}, True),
               ("extra == 'a' or extra == 'b'", {"extra": ("b", "c")}, True),
               ("extra == 'a' or extra == 'b'", {"extra": ("c", "d")}, False),
               ("extra != 'a' and extra != 'b'", {"extra": ("a", "c")}, 
  False),
               ("extra != 'a' and extra != 'b'", {"extra": ("b", "c")}, 
  False),
               ("extra != 'a' and extra != 'b'", {"extra": ("c", "d")}, True),
               ("extra != 'a' or extra != 'b'", {"extra": ("a", "b", 
  "c")}, False),
               ("extra != 'a' or extra != 'b'", {"extra": ("a", "c")}, True),
               ("extra != 'a' or extra != 'b'", {"extra": ("b", "c")}, True),
               ("extra != 'a' and extra == 'b'", {"extra": ("a", "b")}, 
  False),
               ("extra != 'a' and extra == 'b'", {"extra": ("b", "c")}, True),
               ("extra != 'a' and extra == 'b'", {"extra": ("c", "d")}, 
  False),
               ("extra != 'a' or extra == 'b'", {"extra": ("a", "b")}, True),
               ("extra != 'a' or extra == 'b'", {"extra": ("c", "d")}, True),
               ("extra != 'a' or extra == 'b'", {"extra": ("a", "c")}, False),
           ],
       )
       def test_evaluate_extra(
           marker_string: str, environment: dict[str, str | set[str]] | 
  None, expected: bool
       ) -> None:
           m = parse_marker(marker_string)

   >       assert m.evaluate(environment) is expected
  E       assert False is True
  E        +  where False = evaluate({'platform_release': '6.1-foobar'})
  E        +    where evaluate = <MarkerExpression platform_release >= 
  "6">.evaluate

  tests/marker/test_evaluation.py:151: AssertionError
  __________________ test_arbitrary_unsupported[===abc->=1-and] 
  __________________

  a = '===abc', b = '>=1', operand = 'and'

       @pytest.mark.parametrize(
           "a, b, operand",
           [("===abc", ">=1", "and"), ("===1.0.0", "<1", "or"), ("===abc", 
  "==1.*", "or")],
       )
       def test_arbitrary_unsupported(a: str, b: str, operand: str) -> None:
   >       with pytest.raises(ValueError):
                ^^^^^^^^^^^^^^^^^^^^^^^^^
  E       Failed: DID NOT RAISE <class 'ValueError'>

  tests/specifier/test_arbitrary.py:43: Failed
  =========================== short test summary info 
  ============================
  FAILED 
  tests/marker/test_evaluation.py::test_evaluate_extra[platform_release >= 
  '6'-environment10-True]
  FAILED 
  tests/specifier/test_arbitrary.py::test_arbitrary_unsupported[===abc->=1-and]
  ======================== 2 failed, 2477 passed in 1.38s 
  ========================
  E: pybuild pybuild:485: test: plugin pyproject failed with: exit code=1: 
  cd 
  /home/packages/tmp/o/dep-logic-0.5.2/.pybuild/cpython3_3.14_dep-logic/build; 
  python3.14 -m pytest tests
  I: pybuild base:385: cd 
  /home/packages/tmp/o/dep-logic-0.5.2/.pybuild/cpython3_3.13_dep-logic/build; 
  python3.13 -m pytest tests
  ============================= test session starts 
  ==============================
  platform linux -- Python 3.13.12, pytest-9.0.2, pluggy-1.6.0
  rootdir: 
  /home/packages/tmp/o/dep-logic-0.5.2/.pybuild/cpython3_3.13_dep-logic/build
  configfile: pyproject.toml
  plugins: typeguard-4.4.4, timeout-2.4.0, flaky-3.8.1, asyncio-1.3.0, 
  mock-3.15.1
  asyncio: mode=Mode.STRICT, debug=False, 
  asyncio_default_fixture_loop_scope=None, 
  asyncio_default_test_loop_scope=function
  collected 2479 items

  tests/marker/test_common.py ............................ 
  [  1%]
  tests/marker/test_compound.py .......................................... 
  [  2%]
  ........................................................................ 
  [  5%]
  ................................................. 
  [  7%]
  tests/marker/test_evaluation.py .........................F.............. 
  [  9%]
  ......................................... 
  [ 10%]
  tests/marker/test_expression.py ........................................ 
  [ 12%]
  ... 
  [ 12%]
  tests/marker/test_parsing.py ........................................... 
  [ 14%]
  ........................................................................ 
  [ 17%]
  ........................................................................ 
  [ 20%]
  ........................................................................ 
  [ 23%]
  ........................................................................ 
  [ 26%]
  ........................................................................ 
  [ 28%]
  ........................................................................ 
  [ 31%]
  ........................................................................ 
  [ 34%]
  ........................................................................ 
  [ 37%]
  ........................................................................ 
  [ 40%]
  ........................................................................ 
  [ 43%]
  ........................................................................ 
  [ 46%]
  ........................................................................ 
  [ 49%]
  ........................................................................ 
  [ 52%]
  ........................................................................ 
  [ 55%]
  ........................................................................ 
  [ 58%]
  ........................................................................ 
  [ 60%]
  ........................................................................ 
  [ 63%]
  ........................................................................ 
  [ 66%]
  ........................................................................ 
  [ 69%]
  ........................................................................ 
  [ 72%]
  ........................................................................ 
  [ 75%]
  ........................................................................ 
  [ 78%]
  ........................................................................ 
  [ 81%]
  ........................................................................ 
  [ 84%]
  ........................................................................ 
  [ 87%]
  ........................................................................ 
  [ 89%]
  ........................................................................ 
  [ 92%]
  ........................................................... 
  [ 95%]
  tests/specifier/test_arbitrary.py ..............F.. 
  [ 95%]
  tests/specifier/test_range.py .......................................... 
  [ 97%]
  ................... 
  [ 98%]
  tests/specifier/test_union.py ............... 
  [ 98%]
  tests/tags/test_platform.py .............. 
  [ 99%]
  tests/tags/test_tags.py ........... 
  [100%]

  =================================== FAILURES 
  ===================================
  _______ test_evaluate_extra[platform_release >= '6'-environment10-True] 
  ________

  marker_string = "platform_release >= '6'"
  environment = {'platform_release': '6.1-foobar'}, expected = True

       @pytest.mark.parametrize(
           ("marker_string", "environment", "expected"),
           [
               (f"os.name == '{os.name}'", None, True),
               ("sys.platform == 'win32'", {"sys_platform": "linux2"}, False),
               ("platform.version in 'Ubuntu'", {"platform_version": 
  "#39"}, False),
               ("platform.machine=='x86_64'", {"platform_machine": 
  "x86_64"}, True),
               (
                   "platform.python_implementation=='Jython'",
                   {"platform_python_implementation": "CPython"},
                   False,
               ),
               (
                   "python_version == '2.5' and 
  platform.python_implementation!= 'Jython'",
                   {"python_version": "2.7"},
                   False,
               ),
               (
                   (
                       "platform_machine in 'x86_64 X86_64 aarch64 AARCH64 
  ppc64le PPC64LE"
                       " amd64 AMD64 win32 WIN32'"
                   ),
                   {"platform_machine": "foo"},
                   False,
               ),
               (
                   (
                       "platform_machine in 'x86_64 X86_64 aarch64 AARCH64 
  ppc64le PPC64LE"
                       " amd64 AMD64 win32 WIN32'"
                   ),
                   {"platform_machine": "x86_64"},
                   True,
               ),
               (
                   (
                       "platform_machine not in 'x86_64 X86_64 aarch64 
  AARCH64 ppc64le PPC64LE"
                       " amd64 AMD64 win32 WIN32'"
                   ),
                   {"platform_machine": "foo"},
                   True,
               ),
               (
                   (
                       "platform_machine not in 'x86_64 X86_64 aarch64 
  AARCH64 ppc64le PPC64LE"
                       " amd64 AMD64 win32 WIN32'"
                   ),
                   {"platform_machine": "x86_64"},
                   False,
               ),
               ("platform_release >= '6'", {"platform_release": 
  "6.1-foobar"}, True),
               # extras
               # single extra
               ("extra != 'security'", {"extra": "quux"}, True),
               ("extra != 'security'", {"extra": "security"}, False),
               ("extra != 'security'", {}, True),
               ("extra != 'security'", {"platform_machine": "x86_64"}, True),
               # normalization
               ("extra == 'Security.1'", {"extra": "security-1"}, True),
               ("extra == 'a'", {}, False),
               ("extra != 'a'", {}, True),
               ("extra == 'a' and extra == 'b'", {}, False),
               ("extra == 'a' or extra == 'b'", {}, False),
               ("extra != 'a' and extra != 'b'", {}, True),
               ("extra != 'a' or extra != 'b'", {}, True),
               ("extra != 'a' and extra == 'b'", {}, False),
               ("extra != 'a' or extra == 'b'", {}, True),
               # multiple extras
               ("extra == 'a'", {"extra": ("a", "b")}, True),
               ("extra == 'a'", {"extra": ("b", "c")}, False),
               ("extra != 'a'", {"extra": ("a", "b")}, False),
               ("extra != 'a'", {"extra": ("b", "c")}, True),
               ("extra == 'a' and extra == 'b'", {"extra": ("a", "b", 
  "c")}, True),
               ("extra == 'a' and extra == 'b'", {"extra": ("a", "c")}, 
  False),
               ("extra == 'a' or extra == 'b'", {"extra": ("a", "c")}, True),
               ("extra == 'a' or extra == 'b'", {"extra": ("b", "c")}, True),
               ("extra == 'a' or extra == 'b'", {"extra": ("c", "d")}, False),
               ("extra != 'a' and extra != 'b'", {"extra": ("a", "c")}, 
  False),
               ("extra != 'a' and extra != 'b'", {"extra": ("b", "c")}, 
  False),
               ("extra != 'a' and extra != 'b'", {"extra": ("c", "d")}, True),
               ("extra != 'a' or extra != 'b'", {"extra": ("a", "b", 
  "c")}, False),
               ("extra != 'a' or extra != 'b'", {"extra": ("a", "c")}, True),
               ("extra != 'a' or extra != 'b'", {"extra": ("b", "c")}, True),
               ("extra != 'a' and extra == 'b'", {"extra": ("a", "b")}, 
  False),
               ("extra != 'a' and extra == 'b'", {"extra": ("b", "c")}, True),
               ("extra != 'a' and extra == 'b'", {"extra": ("c", "d")}, 
  False),
               ("extra != 'a' or extra == 'b'", {"extra": ("a", "b")}, True),
               ("extra != 'a' or extra == 'b'", {"extra": ("c", "d")}, True),
               ("extra != 'a' or extra == 'b'", {"extra": ("a", "c")}, False),
           ],
       )
       def test_evaluate_extra(
           marker_string: str, environment: dict[str, str | set[str]] | 
  None, expected: bool
       ) -> None:
           m = parse_marker(marker_string)

   >       assert m.evaluate(environment) is expected
  E       assert False is True
  E        +  where False = evaluate({'platform_release': '6.1-foobar'})
  E        +    where evaluate = <MarkerExpression platform_release >= 
  "6">.evaluate

  tests/marker/test_evaluation.py:151: AssertionError
  __________________ test_arbitrary_unsupported[===abc->=1-and] 
  __________________

  a = '===abc', b = '>=1', operand = 'and'

       @pytest.mark.parametrize(
           "a, b, operand",
           [("===abc", ">=1", "and"), ("===1.0.0", "<1", "or"), ("===abc", 
  "==1.*", "or")],
       )
       def test_arbitrary_unsupported(a: str, b: str, operand: str) -> None:
   >       with pytest.raises(ValueError):
                ^^^^^^^^^^^^^^^^^^^^^^^^^
  E       Failed: DID NOT RAISE <class 'ValueError'>

  tests/specifier/test_arbitrary.py:43: Failed
  =========================== short test summary info 
  ============================
  FAILED 
  tests/marker/test_evaluation.py::test_evaluate_extra[platform_release >= 
  '6'-environment10-True]
  FAILED 
  tests/specifier/test_arbitrary.py::test_arbitrary_unsupported[===abc->=1-and]
  ======================== 2 failed, 2477 passed in 1.34s 
  ========================
  E: pybuild pybuild:485: test: plugin pyproject failed with: exit code=1: 
  cd 
  /home/packages/tmp/o/dep-logic-0.5.2/.pybuild/cpython3_3.13_dep-logic/build; 
  python3.13 -m pytest tests
  dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 
  "3.14 3.13" --parallel=8 returned exit code 13
  make: *** [debian/rules:6: binary] Error 25
  dpkg-buildpackage: error: debian/rules binary subprocess failed with 
  exit status 2

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/dep-logic/+bug/2144756/+subscriptions





More information about the foundations-bugs mailing list