File: test_whl_discovery.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 (151 lines) | stat: -rw-r--r-- 9,667 bytes parent folder | download | duplicates (2)
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
import os

from unittest.mock import patch

from tempfile import TemporaryDirectory

from ci_tools.functions import find_whl, find_sdist


integration_folder = os.path.join(os.path.dirname(__file__), "integration")
tags_folder = os.path.join(integration_folder, "scenarios", "sample_interpreter_tags")


def create_basic_temp_dir(tmp_directory_create) -> str:
    tmp_dir = tmp_directory_create(
        [
            os.path.join("azure-common", "azure_common-1.1.29-py3-none-any.whl"),
            os.path.join("azure-core", "azure_core-1.26.5-py3-none-any.whl"),
            os.path.join("azure-core-experimental", "azure_core_experimental-1.0.0b3-py3-none-any.whl"),
            os.path.join("azure-tracing-opencensus", "azure_core_tracing_opencensus-1.0.0b9-py3-none-any.whl"),
            os.path.join(
                "azure-core-tracing-opentelemetry", "azure_core_tracing_opentelemetry-1.0.0b10-py3-none-any.whl"
            ),
            os.path.join("azure-mgmt-core", "azure_mgmt_core-1.4.0-py3-none-any.whl"),
            os.path.join(
                "azure-servicemanagement-legacy", "azure_servicemanagement_legacy-0.20.7-py2.py3-none-any.whl"
            ),
        ]
    )
    return tmp_dir


@patch("ci_tools.functions.get_interpreter_compatible_tags")
def test_find_discovers_standard_whls(test_patch, tmp_directory_create):
    tmp_dir = create_basic_temp_dir(tmp_directory_create)
    test_patch.return_value = ["py3-none-any"]

    # basic positive cases
    found_core = find_whl(tmp_dir, "azure-core", "1.26.5")
    found_legacy = find_whl(tmp_dir, "azure-servicemanagement-legacy", "0.20.7")
    assert found_core is not None
    assert found_legacy is not None

    # basic negative cases
    not_found_core = find_whl(tmp_dir, "azure-core", "1.26.4")
    assert not_found_core is None


@patch("ci_tools.functions.get_interpreter_compatible_tags")
def test_find_whl_fails_on_incompatible_interpreter(test_patch, tmp_directory_create):
    tmp_dir = create_basic_temp_dir(tmp_directory_create)
    test_patch.return_value = []

    found = find_whl(tmp_dir, "azure-core", "1.26.5")
    assert found is None


@patch("ci_tools.functions.get_interpreter_compatible_tags")
def test_find_whl_discovers_specific_wheels(test_patch, tmp_directory_create):
    tmp_dir = tmp_directory_create(
        [
            "azure_storage_extensions-1.0.0b1-cp310-cp310-macosx_10_9_x86_64.whl",
            "azure_storage_extensions-1.0.0b1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "azure_storage_extensions-1.0.0b1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "azure_storage_extensions-1.0.0b1-cp310-cp310-win_amd64.whl",
            "azure_storage_extensions-1.0.0b1-cp310-cp310-win32.whl",
            "azure_storage_extensions-1.0.0b1-cp311-cp311-macosx_10_9_x86_64.whl",
            "azure_storage_extensions-1.0.0b1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "azure_storage_extensions-1.0.0b1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "azure_storage_extensions-1.0.0b1-cp311-cp311-win_amd64.whl",
            "azure_storage_extensions-1.0.0b1-cp311-cp311-win32.whl",
            "azure_storage_extensions-1.0.0b1-cp312-cp312-macosx_10_9_x86_64.whl",
            "azure_storage_extensions-1.0.0b1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "azure_storage_extensions-1.0.0b1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "azure_storage_extensions-1.0.0b1-cp312-cp312-win_amd64.whl",
            "azure_storage_extensions-1.0.0b1-cp312-cp312-win32.whl",
            "azure_storage_extensions-1.0.0b1-cp37-cp37m-macosx_10_9_x86_64.whl",
            "azure_storage_extensions-1.0.0b1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "azure_storage_extensions-1.0.0b1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "azure_storage_extensions-1.0.0b1-cp37-cp37m-win_amd64.whl",
            "azure_storage_extensions-1.0.0b1-cp37-cp37m-win32.whl",
            "azure_storage_extensions-1.0.0b1-cp38-cp38-macosx_10_9_x86_64.whl",
            "azure_storage_extensions-1.0.0b1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "azure_storage_extensions-1.0.0b1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "azure_storage_extensions-1.0.0b1-cp38-cp38-win_amd64.whl",
            "azure_storage_extensions-1.0.0b1-cp38-cp38-win32.whl",
            "azure_storage_extensions-1.0.0b1-cp39-cp39-linux_x86_64.whl",
            "azure_storage_extensions-1.0.0b1-cp39-cp39-macosx_10_9_x86_64.whl",
            "azure_storage_extensions-1.0.0b1-cp39-cp39-macosx_11_0_x86_64.whl",
            "azure_storage_extensions-1.0.0b1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "azure_storage_extensions-1.0.0b1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "azure_storage_extensions-1.0.0b1-cp39-cp39-win_amd64.whl",
            "azure_storage_extensions-1.0.0b1-cp39-cp39-win32.whl",
            "azure-storage-extensions-1.0.0b1.tar.gz",
        ]
    )

    with open(os.path.join(tags_folder, "from_WSL_310.txt"), "r", encoding="utf-8") as f:
        compatible_tags = [line.strip() for line in f.readlines()]

    test_patch.return_value = compatible_tags
    found = find_whl(tmp_dir, "azure-storage-extensions", "1.0.0b1")
    assert isinstance(found, str)


@patch("ci_tools.functions.get_interpreter_compatible_tags")
def test_find_sdist_discovers_specific_sdist(test_patch, tmp_directory_create):
    tmp_dir = tmp_directory_create(
        [
            "azure_storage_extensions-1.0.0b1-cp310-cp310-macosx_10_9_x86_64.whl",
            "azure_storage_extensions-1.0.0b1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "azure_storage_extensions-1.0.0b1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "azure_storage_extensions-1.0.0b1-cp310-cp310-win_amd64.whl",
            "azure_storage_extensions-1.0.0b1-cp310-cp310-win32.whl",
            "azure_storage_extensions-1.0.0b1-cp311-cp311-macosx_10_9_x86_64.whl",
            "azure_storage_extensions-1.0.0b1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "azure_storage_extensions-1.0.0b1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "azure_storage_extensions-1.0.0b1-cp311-cp311-win_amd64.whl",
            "azure_storage_extensions-1.0.0b1-cp311-cp311-win32.whl",
            "azure_storage_extensions-1.0.0b1-cp312-cp312-macosx_10_9_x86_64.whl",
            "azure_storage_extensions-1.0.0b1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "azure_storage_extensions-1.0.0b1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "azure_storage_extensions-1.0.0b1-cp312-cp312-win_amd64.whl",
            "azure_storage_extensions-1.0.0b1-cp312-cp312-win32.whl",
            "azure_storage_extensions-1.0.0b1-cp37-cp37m-macosx_10_9_x86_64.whl",
            "azure_storage_extensions-1.0.0b1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "azure_storage_extensions-1.0.0b1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "azure_storage_extensions-1.0.0b1-cp37-cp37m-win_amd64.whl",
            "azure_storage_extensions-1.0.0b1-cp37-cp37m-win32.whl",
            "azure_storage_extensions-1.0.0b1-cp38-cp38-macosx_10_9_x86_64.whl",
            "azure_storage_extensions-1.0.0b1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "azure_storage_extensions-1.0.0b1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "azure_storage_extensions-1.0.0b1-cp38-cp38-win_amd64.whl",
            "azure_storage_extensions-1.0.0b1-cp38-cp38-win32.whl",
            "azure_storage_extensions-1.0.0b1-cp39-cp39-linux_x86_64.whl",
            "azure_storage_extensions-1.0.0b1-cp39-cp39-macosx_10_9_x86_64.whl",
            "azure_storage_extensions-1.0.0b1-cp39-cp39-macosx_11_0_x86_64.whl",
            "azure_storage_extensions-1.0.0b1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "azure_storage_extensions-1.0.0b1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "azure_storage_extensions-1.0.0b1-cp39-cp39-win_amd64.whl",
            "azure_storage_extensions-1.0.0b1-cp39-cp39-win32.whl",
            "azure-storage-extensions-1.0.0b1.tar.gz",
        ]
    )

    with open(os.path.join(tags_folder, "from_WSL_310.txt"), "r", encoding="utf-8") as f:
        compatible_tags = [line.strip() for line in f.readlines()]

    test_patch.return_value = compatible_tags
    found = find_sdist(tmp_dir, "azure-storage-extensions", "1.0.0b1")
    assert isinstance(found, str)