Skip to content

Feature/devexp 1512 python oas synch sprint 11 (#7) #397

Feature/devexp 1512 python oas synch sprint 11 (#7)

Feature/devexp 1512 python oas synch sprint 11 (#7) #397

Workflow file for this run

name: Test Python SDK
on: [ push ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e .
pip install -r requirements-dev.txt
- name: Compile all examples
run: |
for file in $(find examples -name "*.py"); do
echo "Compiling $file..."
python -m py_compile "$file" || exit 1
done
echo "All examples compiled successfully."
- name: Check snippet coverage
run: |
pip install python-dotenv
python scripts/check_snippet_coverage.py
- name: Lint and format check with Ruff
run: |
ruff check sinch/domains/numbers --statistics
ruff format sinch/domains/numbers --check --diff
ruff check sinch/domains/sms --statistics
ruff format sinch/domains/sms --check --diff
ruff check sinch/domains/number_lookup --statistics
ruff format sinch/domains/number_lookup --check --diff
ruff check sinch/domains/conversation --statistics
ruff format sinch/domains/conversation --check --diff
- name: Test with Pytest
run: |
coverage run --source=. -m pytest
- name: Coverage Test Report
run: |
python -m coverage report --skip-empty
- name: Checkout sinch-sdk-mockserver repository
uses: actions/checkout@v4
with:
repository: sinch/sinch-sdk-mockserver
token: ${{ secrets.MOCKSERVER_REPO_PAT_CI }}
fetch-depth: 0
path: sinch-sdk-mockserver
- name: Start mock servers with Docker Compose
run: |
cd sinch-sdk-mockserver
docker compose up -d
- name: Copy feature files
run: |
cp sinch-sdk-mockserver/features/numbers/available-regions.feature ./tests/e2e/numbers/features/
cp sinch-sdk-mockserver/features/numbers/callback-configuration.feature ./tests/e2e/numbers/features/
cp sinch-sdk-mockserver/features/numbers/numbers.feature ./tests/e2e/numbers/features/
cp sinch-sdk-mockserver/features/numbers/webhooks.feature ./tests/e2e/numbers/features/
cp sinch-sdk-mockserver/features/sms/* ./tests/e2e/sms/features/
cp sinch-sdk-mockserver/features/number-lookup/lookups.feature ./tests/e2e/number-lookup/features/
cp sinch-sdk-mockserver/features/conversation/messages.feature ./tests/e2e/conversation/features/
cp sinch-sdk-mockserver/features/conversation/apps.feature ./tests/e2e/conversation/features/
cp sinch-sdk-mockserver/features/conversation/webhooks-events.feature ./tests/e2e/conversation/features/
- name: Wait for mock server
run: .github/scripts/wait-for-mockserver.sh
shell: bash
- name: Run e2e tests sync
run: |
python -m behave tests/e2e/numbers/features
python -m behave tests/e2e/sms/features
python -m behave tests/e2e/conversation/features
python -m behave tests/e2e/number-lookup/features