Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 79 additions & 0 deletions .github/workflows/python-sdk-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
name: Python Keymaster SDK tests

on:
pull_request:

jobs:
test_python_sdk:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"

- name: Setup .env for Testing
working-directory: ./tests/cli-tests
run: |
sudo apt-get update
sudo apt-get install -y expect
./generate_test_env.sh
cat ../../.env

- name: Build images from this PR
run: |
docker compose build mongodb redis ipfs gatekeeper search-server keymaster

- name: Run Node
run: |
docker compose up -d mongodb redis ipfs gatekeeper search-server keymaster
docker compose ps

- name: Wait for Keymaster readiness
env:
KM: http://localhost:4226
run: |
for i in {1..90}; do
if curl -fsS "$KM/api/v1/ready" | grep -q '"ready":true'; then
echo "Keymaster is ready"; exit 0
fi
sleep 2
done
echo "Keymaster did not become ready in time" >&2
exit 1

- name: Install Python deps
working-directory: ./python/keymaster_sdk
run: |
python -m pip install --upgrade pip
pip install -e .
pip install pytest

- name: Run Python tests
working-directory: ./python/keymaster_sdk
env:
KC_KEYMASTER_URL: http://localhost:4226
run: |
pytest -q tests/test_keymaster_sdk.py

- name: Grab logs
if: always()
run: |
docker compose logs --no-color keymaster > docker-services-logs.txt || true
cat docker-services-logs.txt

- name: Teardown Docker
run: |
./stop-node

- name: Upload logs
if: always()
uses: actions/upload-artifact@v4
with:
name: docker-services-logs
path: docker-services-logs.txt

12 changes: 1 addition & 11 deletions python/keymaster_sdk/tests/test_keymaster_sdk.py
Original file line number Diff line number Diff line change
Expand Up @@ -190,13 +190,6 @@ def test_wallet():
assert "idsRemoved" in response, "idsRemoved not present in fix_wallet response"


def test_registries():
response = keymaster.list_registries()
assert (
"hyperswarm" in response
), "hyperswarm not present in list_registries response"


def test_backup_recover_id():
alice = generate_id()
did = keymaster.create_id(alice, local_options)
Expand Down Expand Up @@ -470,7 +463,7 @@ def test_notices_create_update_and_refresh():
def test_dmail():
sender = generate_id()
recipient = generate_id()
sender_did = keymaster.create_id(sender)
sender_did = keymaster.create_id(sender, local_options)
recipient_did = keymaster.create_id(recipient, local_options)
keymaster.set_current_id(sender)

Expand Down Expand Up @@ -500,9 +493,6 @@ def test_dmail():
ok = keymaster.import_dmail(dmail_did)
assert_equal(ok, True)

notice_did = keymaster.send_dmail(dmail_did)
assert notice_did.startswith("did:")

ok = keymaster.remove_dmail(dmail_did)
assert_equal(ok, True)

Expand Down
Loading