From e5a29b6328807609a33150c014182ba84b7de0ab Mon Sep 17 00:00:00 2001 From: Jonathan Ballet Date: Fri, 22 Sep 2023 04:45:18 +0200 Subject: [PATCH] python: run the Python samples tests with GitHub Actions (#16643) --- ...amples-python-nextgen-client-echo-api.yaml | 14 +++-- .../workflows/samples-python-petstore.yaml | 59 +++++++++++++++++++ .../petstore/python/tests/test_api_client.py | 2 +- .../petstore/python/tests/test_pet_api.py | 2 +- 4 files changed, 71 insertions(+), 6 deletions(-) create mode 100644 .github/workflows/samples-python-petstore.yaml diff --git a/.github/workflows/samples-python-nextgen-client-echo-api.yaml b/.github/workflows/samples-python-nextgen-client-echo-api.yaml index f652bee8ef4..4744dd1e101 100644 --- a/.github/workflows/samples-python-nextgen-client-echo-api.yaml +++ b/.github/workflows/samples-python-nextgen-client-echo-api.yaml @@ -1,12 +1,11 @@ name: Python Client (Echo API) on: - push: - paths: - - samples/client/echo_api/python/** pull_request: paths: - samples/client/echo_api/python/** + - .github/workflows/samples-python-nextgen-client-echo-api.yaml + jobs: build: name: Test Python client @@ -17,11 +16,17 @@ jobs: sample: # clients - samples/client/echo_api/python + python-version: + - "3.7" + - "3.8" + - "3.9" + - "3.10" + #- "3.11" steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v4 with: - python-version: '3.7' + python-version: ${{ matrix.python-version }} - name: Setup node.js uses: actions/setup-node@v3 - name: Run echo server @@ -33,6 +38,7 @@ jobs: run: | pip install -r requirements.txt pip install -r test-requirements.txt + - name: Test working-directory: ${{ matrix.sample }} run: python -m pytest diff --git a/.github/workflows/samples-python-petstore.yaml b/.github/workflows/samples-python-petstore.yaml new file mode 100644 index 00000000000..9d8e01d5b0f --- /dev/null +++ b/.github/workflows/samples-python-petstore.yaml @@ -0,0 +1,59 @@ +name: "Python Client: Petstore" + +on: + pull_request: + paths: + - samples/openapi3/client/petstore/python-aiohttp/** + - samples/openapi3/client/petstore/python/** + - .github/workflows/samples-python-petstore.yaml + +jobs: + build: + name: Test Python client + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: + - "3.7" + - "3.8" + - "3.9" + - "3.10" + #- "3.11" + sample: + - samples/openapi3/client/petstore/python-aiohttp + - samples/openapi3/client/petstore/python + services: + petstore-api: + image: swaggerapi/petstore + ports: + - 80:8080 + env: + SWAGGER_HOST: http://petstore.swagger.io + SWAGGER_BASE_PATH: /v2 + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v4 + id: py + with: + python-version: ${{ matrix.python-version }} + + - name: Cache + uses: actions/cache@v3 + with: + key: ${{ runner.os }}-python-${{ steps.py.outputs.python-version }}- + path: | + ~/.cache/pypoetry/virtualenvs/ + ~/.local/pipx/venvs/poetry/ + .mypy_cache/ + + - name: Install poetry + run: pipx install --python '${{ steps.py.outputs.python-path }}' poetry + + - name: Install + working-directory: ${{ matrix.sample }} + run: poetry install + + - name: Test + working-directory: ${{ matrix.sample }} + run: poetry run pytest -v diff --git a/samples/openapi3/client/petstore/python/tests/test_api_client.py b/samples/openapi3/client/petstore/python/tests/test_api_client.py index 318545d6e8f..ee9afd740cd 100644 --- a/samples/openapi3/client/petstore/python/tests/test_api_client.py +++ b/samples/openapi3/client/petstore/python/tests/test_api_client.py @@ -19,7 +19,7 @@ from dateutil.parser import parse import petstore_api import petstore_api.configuration -HOST = 'http://petstore.swagger.io/v2' +HOST = 'http://localhost/v2' class ApiClientTests(unittest.TestCase): diff --git a/samples/openapi3/client/petstore/python/tests/test_pet_api.py b/samples/openapi3/client/petstore/python/tests/test_pet_api.py index 61a6030a4ae..1d816b8d1db 100644 --- a/samples/openapi3/client/petstore/python/tests/test_pet_api.py +++ b/samples/openapi3/client/petstore/python/tests/test_pet_api.py @@ -24,7 +24,7 @@ import json import urllib3 -HOST = 'http://petstore.swagger.io/v2' +HOST = 'http://localhost/v2' class TimeoutWithEqual(urllib3.Timeout):