File: python3-tests

package info (click to toggle)
python-azure 20201208%2Bgit-6
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 1,437,920 kB
  • sloc: python: 4,287,452; javascript: 269; makefile: 198; sh: 187; xml: 106
file content (197 lines) | stat: -rwxr-xr-x 14,785 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
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
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
#!/bin/bash

set -eu
set -o pipefail

CURDIR=$(pwd)
PYVERSIONS=$(py3versions -r 2>/dev/null)

SUCCESSFUL_TESTS=()
FAILED_TESTS=()
SKIPPED_TESTS=()

mkdir -p "$AUTOPKGTEST_TMP/pylib"
cp -r tools/azure-sdk-tools/devtools_testutils "$AUTOPKGTEST_TMP/pylib"
cp -r tools/azure-sdk-tools/packaging_tools "$AUTOPKGTEST_TMP/pylib"
cp -r tools/azure-sdk-tools/testutils "$AUTOPKGTEST_TMP/pylib"
cp -r tools/azure-devtools/src/azure_devtools "$AUTOPKGTEST_TMP/pylib"

SETUP_PY_FILES=($(find sdk -name setup.py -type f | grep -v -e nspkg \
	-e opencensus -e opentelemetry -e sdk/cosmos/azure-cosmos \
	-e azure-eventhub-checkpointstoreblob-aio \
	-e azure-servicemanagement-legacy -e azure-eventhub \
	))

cp sdk/conftest.py "${AUTOPKGTEST_TMP}/"
cd "$AUTOPKGTEST_TMP"
for setup_py in "${SETUP_PY_FILES[@]}"; do
    module="$(dirname "${setup_py}")"
    if ! [ -d "$CURDIR/$module/tests" ]; then
        continue
    fi

    if [ "$module" = "azure-mgmt-media" ]; then
        echo "Skipping tests for $module; known to be all skipped upstream"
        continue
    fi

    for pyver in $PYVERSIONS; do
        echo "Testing $module for $pyver"
        test_name="${module}_${pyver}"
        rm -rf "$AUTOPKGTEST_TMP/tests"
        cp -r "$CURDIR/$module/tests" "$AUTOPKGTEST_TMP"
        # Sometimes the conftest.py (which sets up fixtures) is in the module directory
        if [ ! -r "$AUTOPKGTEST_TMP/tests/conftest.py" ] && [ -r "$CURDIR/$module/conftest.py" ]; then
            cp "$CURDIR/$module/conftest.py" "$AUTOPKGTEST_TMP/tests/"
        fi
        if PYTHONPATH="$AUTOPKGTEST_TMP/pylib" "$pyver" -m pytest --ignore=pylib \
                --deselect=tests/test_append_blob_async.py::StorageAppendBlobTestAsync::test_append_block_from_url_with_source_if_modified_async \
                --deselect=tests/test_append_blob_async.py::StorageAppendBlobTestAsync::test_append_block_from_url_with_source_if_none_match_async \
                --deselect=tests/test_blob_access_conditions_async.py::StorageBlobAccessConditionsTestAsync::test_get_blob_metadata_with_if_modified_fail \
                --deselect=tests/test_blob_access_conditions_async.py::StorageBlobAccessConditionsTestAsync::test_get_blob_metadata_with_if_none_match_fail \
                --deselect=tests/test_blob_access_conditions_async.py::StorageBlobAccessConditionsTestAsync::test_get_blob_properties_with_if_modified_fail \
                --deselect=tests/test_blob_access_conditions_async.py::StorageBlobAccessConditionsTestAsync::test_get_blob_properties_with_if_none_match_fail \
                --deselect=tests/test_blob_access_conditions_async.py::StorageBlobAccessConditionsTestAsync::test_get_blob_with_if_modified_fail \
                --deselect=tests/test_blob_access_conditions_async.py::StorageBlobAccessConditionsTestAsync::test_get_blob_with_if_none_match_fail \
                --deselect=tests/test_blob_access_conditions_async.py::StorageBlobAccessConditionsTestAsync::test_get_page_ranges_iter_if_none_match_fail \
                --deselect=tests/test_blob_access_conditions_async.py::StorageBlobAccessConditionsTestAsync::test_get_page_ranges_iter_with_if_modified_fail \
                --deselect=tests/test_cli_mgmt_compute.py::MgmtComputeTest::test_compute \
                --deselect=tests/test_page_blob_async.py::StoragePageBlobTestAsync::test_upload_pages_from_url_with_source_if_modified \
                --deselect=tests/test_page_blob_async.py::StoragePageBlobTestAsync::test_upload_pages_from_url_with_source_if_none_match \
                --deselect=tests/test_file_api_version_async.py::AsyncStorageClientTest::test_old_api_copy_file_succeeds_async \
                --deselect=tests/test_file_client_async.py::StorageFileClientTest::test_update_range_with_md5_async \
                --deselect=tests/test_file_client_async.py::StorageFileClientTest::test_user_agent_append_async\
                --deselect=tests/test_file_client_async.py::StorageFileClientTest::test_user_agent_custom_async \
                --deselect=tests/test_file_client_async.py::StorageFileClientTest::test_user_agent_default_async \
                --deselect=tests/test_blob_api_version_async.py::StorageClientTest::test_old_api_get_page_ranges_succeeds_async \
                --deselect=tests/test_blob_client_async.py::StorageClientTestAsync::test_request_callback_signed_header_async \
                --deselect=tests/test_blob_client_async.py::StorageClientTestAsync::test_response_callback_async \
                --deselect=tests/test_blob_client_async.py::StorageClientTestAsync::test_user_agent_append_async \
                --deselect=tests/test_blob_client_async.py::StorageClientTestAsync::test_user_agent_custom_async \
                --deselect=tests/test_blob_client_async.py::StorageClientTestAsync::test_user_agent_default_async \
                --deselect=tests/test_queue_client_async.py::StorageQueueClientTestAsync::test_request_callback_signed_header \
                --deselect=tests/test_queue_client_async.py::StorageQueueClientTestAsync::test_response_callback \
                --deselect=tests/test_queue_client_async.py::StorageQueueClientTestAsync::test_user_agent_append \
                --deselect=tests/test_queue_client_async.py::StorageQueueClientTestAsync::test_user_agent_custom \
                --deselect=tests/test_queue_client_async.py::StorageQueueClientTestAsync::test_user_agent_default \
                --deselect=tests/test_mgmt_async.py::TestManagementAsync::test_get_form_recognizer_client \
                --deselect=tests/test_receipt.py::TestManagementAsync::test_get_form_recognizer_client \
                --deselect=tests/test_receipt.py::TestReceiptFromStream::test_authentication_successful_key \
                --deselect=tests/test_receipt.py::TestReceiptFromStream::test_passing_enum_content_type \
                --deselect=tests/test_receipt.py::TestReceiptFromStream::test_receipt_jpg \
                --deselect=tests/test_receipt.py::TestReceiptFromStream::test_receipt_jpg_include_text_content \
                --deselect=tests/test_receipt.py::TestReceiptFromStream::test_receipt_png \
                --deselect=tests/test_receipt.py::TestReceiptFromStream::test_receipt_stream_transform_jpg \
                --deselect=tests/test_receipt.py::TestReceiptFromStream::test_receipt_stream_transform_png \
                --deselect=tests/test_receipt_async.py::TestReceiptFromStreamAsync::test_authentication_successful_key \
                --deselect=tests/test_receipt_async.py::TestReceiptFromStreamAsync::test_passing_enum_content_type \
                --deselect=tests/test_receipt_async.py::TestReceiptFromStreamAsync::test_receipt_jpg \
                --deselect=tests/test_receipt_async.py::TestReceiptFromStreamAsync::test_receipt_jpg_include_text_content \
                --deselect=tests/test_receipt_async.py::TestReceiptFromStreamAsync::test_receipt_png \
                --deselect=tests/test_receipt_async.py::TestReceiptFromStreamAsync::test_receipt_stream_transform_jpg \
                --deselect=tests/test_receipt_async.py::TestReceiptFromStreamAsync::test_receipt_stream_transform_png \
                --deselect=tests/test_receipt_from_url.py::TestReceiptFromUrl::test_receipt_url_auth_successful_key \
                --deselect=tests/test_receipt_from_url.py::TestReceiptFromUrl::test_receipt_url_include_text_content \
                --deselect=tests/test_receipt_from_url.py::TestReceiptFromUrl::test_receipt_url_jpg \
                --deselect=tests/test_receipt_from_url.py::TestReceiptFromUrl::test_receipt_url_png \
                --deselect=tests/test_receipt_from_url.py::TestReceiptFromUrl::test_receipt_url_transform_jpg \
                --deselect=tests/test_receipt_from_url.py::TestReceiptFromUrl::test_receipt_url_transform_png \
                --deselect=tests/test_receipt_from_url_async.py::TestReceiptFromUrlAsync::test_receipt_url_auth_successful_key \
                --deselect=tests/test_receipt_from_url_async.py::TestReceiptFromUrlAsync::test_receipt_url_include_text_content \
                --deselect=tests/test_receipt_from_url_async.py::TestReceiptFromUrlAsync::test_receipt_url_jpg \
                --deselect=tests/test_receipt_from_url_async.py::TestReceiptFromUrlAsync::test_receipt_url_png \
                --deselect=tests/test_receipt_from_url_async.py::TestReceiptFromUrlAsync::test_receipt_url_transform_jpg \
                --deselect=tests/test_receipt_from_url_async.py::TestReceiptFromUrlAsync::test_receipt_url_transform_png \
                --deselect=tests/test_mgmt_batch.py::MgmtBatchTest::test_mgmt_batch_account_advanced \
                --deselect=tests/test_mgmt_resource_managed_application.py::MgmtResourceLinksTest::test_application \
                --deselect=tests/test_basic_transport.py::test_multipart_send_with_one_changeset \
                --deselect=tests/test_basic_transport.py::test_multipart_send_with_multiple_changesets \
                --deselect=tests/test_basic_transport.py::test_multipart_send_with_combination_changeset_first \
                --deselect=tests/test_basic_transport.py::test_multipart_send_with_combination_changeset_last \
                --deselect=tests/test_basic_transport.py::test_multipart_send_with_combination_changeset_middle \
                --deselect=tests/azure_core_asynctests/test_basic_transport.py::test_multipart_send_with_one_changeset \
                --deselect=tests/azure_core_asynctests/test_basic_transport.py::test_multipart_send_with_multiple_changesets \
                --deselect=tests/azure_core_asynctests/test_basic_transport.py::test_multipart_send_with_combination_changeset_first \
                --deselect=tests/azure_core_asynctests/test_basic_transport.py::test_multipart_send_with_combination_changeset_last \
                --deselect=tests/azure_core_asynctests/test_basic_transport.py::test_multipart_send_with_combination_changeset_middle \
                --deselect=tests/test_policies.py::test_register_rp_policy \
                --deselect=tests/test_policies.py::test_register_failed_policy \
                --deselect=tests/test_mgmt_compute_vmss.py::MgmtComputeTest::test_compute_vmss_base_2 \
                --deselect=tests/test_mgmt_compute_vmss.py::MgmtComputeTest::test_compute_vmss_perform_maintenance \
                --deselect=tests/test_mgmt_compute_vmss.py::MgmtComputeTest::test_compute_vmss_rolling_upgrades \
                --deselect=tests/test_change_feed.py::StorageChangeFeedTest::test_change_feed_does_not_fail_on_empty_event_stream \
                --deselect=tests/test_change_feed.py::StorageChangeFeedTest::test_get_change_feed_events_with_continuation_token \
                --deselect=tests/test_change_feed.py::StorageChangeFeedTest::test_read_change_feed_tail_where_3_shards_have_data \
                --deselect=tests/test_change_feed.py::StorageChangeFeedTest::test_read_change_feed_tail_where_only_1_shard_has_data \
                --ignore=tests/test_certificates_client.py \
                --ignore=tests/test_certificates_client_async.py \
                --ignore=tests/test_examples_certificates.py \
                --ignore=tests/test_examples_certificates_async.py \
                --ignore=tests/test_merge_certificate.py \
                --ignore=tests/test_merge_certificate_async.py \
                --ignore=tests/test_samples_secrets.py \
                --ignore=tests/test_samples_secrets_async.py \
                --ignore=tests/test_secrets_async.py \
                --ignore=tests/test_secrets_client.py \
                --ignore=tests/test_crypto_client.py \
                --ignore=tests/test_crypto_client_async.py \
                --ignore=tests/test_examples_crypto.py \
                --ignore=tests/test_examples_crypto_async.py \
                --ignore=tests/test_examples_crypto.py \
                --ignore=tests/test_examples_crypto_async.py \
                --ignore=tests/test_key_client.py \
                --ignore=tests/test_keys_async.py \
                --ignore=tests/test_samples_keys.py \
                --ignore=tests/test_samples_keys_async.py \
                --ignore=tests/test_cli_mgmt_appplatform.py \
                --ignore=tests/test_directory_async.py \
                --ignore=tests/test_file_service_properties_async.py \
                --ignore=tests/test_get_file_async.py \
                --ignore=tests/test_handle_async.py \
                --ignore=tests/test_share_async.py \
                --ignore=tests/test_file_async.py \
                --ignore=tests/test_append_blob_async.py \
                --ignore=tests/test_blob_access_conditions_async.py \
                --ignore=tests/test_blob_encryption_async.py \
                --ignore=tests/test_blob_service_properties_async.py \
                --ignore=tests/test_blob_service_stats_async.py \
                --ignore=tests/test_blob_storage_account_async.py \
                --ignore=tests/test_block_blob_async.py \
                --ignore=tests/test_block_blob_sync_copy_async.py \
                --ignore=tests/test_common_blob_async.py \
                --ignore=tests/test_container_async.py \
                --ignore=tests/test_cpk_async.py \
                --ignore=tests/test_cpk_n_async.py \
                --ignore=tests/test_get_blob_async.py \
                --ignore=tests/test_logging_async.py \
                --ignore=tests/test_page_blob_async.py \
                --ignore=tests/test_retry_async.py \
                --ignore=tests/test_queue_async.py \
                --ignore=tests/test_queue_encodings_async.py \
                --ignore=tests/test_queue_encryption_async.py \
                --ignore=tests/test_queue_service_properties_async.py \
                --ignore=tests/test_queue_service_stats_async.py \
                --ignore=tests/test_cli_mgmt_web.py \
                --ignore=tests/test_avro_serializer.py \
                --ignore=tests/test_cli_mgmt_network_base.py \
                --ignore=tests/test_cli_mgmt_network_firewall.py \
                . 2>&1 | tee -a "${AUTOPKGTEST_TMP}/$(basename "${test_name}").log"; then
            SUCCESSFUL_TESTS+=("$test_name")
        elif [ $? = 5 ]; then
            # Some tests are skipped entirely, so pytest exits with 5 for "no tests collected"
            SKIPPED_TESTS+=("$test_name(exit=${?})")
        else
            FAILED_TESTS+=("$test_name(exit=${?})")
            exit 1
        fi
        rm -r "$AUTOPKGTEST_TMP/tests"
    done
done

echo "Successful tests:" "${SUCCESSFUL_TESTS[@]}"
echo "Skipped tests:" "${SKIPPED_TESTS[@]}"
echo "Failed tests:" "${FAILED_TESTS[@]}"

if [ ${#FAILED_TESTS[@]} -gt 0 ]; then
    exit 1
fi