# Run separate test cases to verify Moto works with older versions of dependencies # name: "Outdated Dependency Tests" on: pull_request: types: [ labeled ] jobs: test: if: ${{ github.event.label.name == 'moto-core' }} runs-on: ubuntu-latest strategy: fail-fast: false matrix: python-version: [ "3.11" ] responses-version: ["0.13.0", "0.15.0", "0.17.0", "0.19.0", "0.20.0" ] werkzeug-version: ["2.0.1", "2.1.1", "2.2.2"] openapi-spec-validator-version: ["0.5.0"] steps: - name: Checkout repository uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Update pip run: | python -m pip install --upgrade pip - name: Install project dependencies run: | pip install -r requirements-dev.txt pip install responses==${{ matrix.responses-version }} pip install flask==${{ matrix.werkzeug-version }} pip install werkzeug==${{ matrix.werkzeug-version }} pip install openapi-spec-validator==${{ matrix.openapi-spec-validator-version }} - name: Run tests run: | pytest -sv tests/test_core ./tests/test_apigateway/test_apigateway_integration.py tests/test_iotdata ./tests/test_s3/test_server.py - name: Start MotoServer run: | python -m build docker run --rm -t --name motoserver -e TEST_SERVER_MODE=true -e AWS_SECRET_ACCESS_KEY=server_secret -e AWS_ACCESS_KEY_ID=server_key -v `pwd`:/moto -p 5000:5000 -v /var/run/docker.sock:/var/run/docker.sock python:3.7-buster /moto/scripts/ci_moto_server.sh & python scripts/ci_wait_for_server.py - name: Test ServerMode/Coverage env: TEST_SERVER_MODE: ${{ true }} run: | pytest -sv tests/test_core tests/test_awslambda tests/test_cloudformation tests/test_iotdata - name: "Stop MotoServer" if: always() run: | mkdir serverlogs pwd ls -la cp server_output.log serverlogs/server_output.log docker stop motoserver - name: Archive TF logs if: always() uses: actions/upload-artifact@v4 with: name: test-${{ matrix.responses-version }}-${{ matrix.werkzeug-version }}-${{ matrix.werkzeug-version }}-${{ matrix.openapi-spec-validator-version }} path: | serverlogs/*