File: test_conflict_resolution.py

package info (click to toggle)
python-azure 20250603%2Bgit-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, trixie
  • size: 851,724 kB
  • sloc: python: 7,362,925; ansic: 804; javascript: 287; makefile: 195; sh: 145; xml: 109
file content (35 lines) | stat: -rw-r--r-- 1,297 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import pytest

from unittest.mock import patch
from tempfile import TemporaryDirectory
from ci_tools.functions import resolve_compatible_package, is_package_compatible
from typing import Optional, List
from packaging.version import Version
from pkg_resources import Requirement


@pytest.mark.parametrize(
    "fake_package_input_requirements, immutable_requirements, expected_result",
    [([Requirement("sphinx==1.0.0")], [Requirement("sphinx>=1.0.0")], True),
     ([Requirement("sphinx==1.0.0")], [Requirement("sphinx>=1.1.0")], False)],
)
def test_incompatible_specifier(fake_package_input_requirements, immutable_requirements, expected_result):
    result = is_package_compatible("fake-package", fake_package_input_requirements, immutable_requirements)
    assert result == expected_result


def test_identity_resolution():
    result = resolve_compatible_package(
        "azure-identity",
        [Requirement("azure-core>=1.28.0"), Requirement("isodate>=0.6.1"), Requirement("typing-extensions>=4.0.1")],
    )
    assert result == "azure-identity==1.16.0"


def test_resolution_no_requirement():
    result = resolve_compatible_package(
        "azure-identity",
        [Requirement("azure-core")],
    )
    assert result is not None
    assert result.startswith("azure-identity==1.")