File: test_conflict_resolution.py

package info (click to toggle)
python-azure 20251014%2Bgit-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 766,472 kB
  • sloc: python: 6,314,744; ansic: 804; javascript: 287; makefile: 198; sh: 198; xml: 109
file content (37 lines) | stat: -rw-r--r-- 1,324 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
36
37
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 packaging.requirements 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.")