Skip to content

Commit

Permalink
Merge branch 'main' into feat/pagination-ordering
Browse files Browse the repository at this point in the history
Signed-off-by: ff137 <[email protected]>
  • Loading branch information
ff137 committed Aug 30, 2024
2 parents b96400d + acccfaf commit c08e416
Show file tree
Hide file tree
Showing 41 changed files with 3,066 additions and 215 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: acapy-integration-tests
name: BDD Integration Tests

on:
schedule:
Expand Down
46 changes: 46 additions & 0 deletions .github/workflows/bdd-interop-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: BDD Interop Integration Tests

on:
pull_request:
branches:
- main
types: [opened, synchronize, reopened, ready_for_review]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

defaults:
run:
shell: bash

jobs:
test:
runs-on: ubuntu-latest
if: (github.event_name == 'pull_request' && github.event.pull_request.draft == false && github.repository == 'hyperledger/aries-cloudagent-python') || (github.event_name != 'pull_request')
outputs:
is_release: ${{ steps.check_if_release.outputs.is_release }}
steps:
- name: checkout-acapy
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Request GitHub API for PR data
uses: octokit/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
id: get_pr_data
with:
route: GET /repos/${{ github.event.repository.full_name }}/pulls/${{ github.event.number }}
- name: Run BDD Interop Tests
run: |
# Get AATH
git clone https://github.com/hyperledger/aries-agent-test-harness.git
echo ${{ fromJson(steps.get_pr_data.outputs.data).head.repo.html_url }}
echo ${{ fromJson(steps.get_pr_data.outputs.data).head.ref }}
sed -i 's|@git+https://github.com/hyperledger/aries-cloudagent-python@main|@git+${{ fromJson(steps.get_pr_data.outputs.data).head.repo.html_url }}@${{ fromJson(steps.get_pr_data.outputs.data).head.ref }}|g' ./aries-agent-test-harness/aries-backchannels/acapy/requirements-main.txt
cat aries-agent-test-harness/aries-backchannels/acapy/requirements-main.txt
cd aries-agent-test-harness
./manage build -a acapy-main
NO_TTY=1 LEDGER_URL_CONFIG=http://test.bcovrin.vonx.io TAILS_SERVER_URL_CONFIG=https://tails.vonx.io ./manage run -d acapy-main -t @critical -t ~@wip -t ~@T004-RFC0211 -t ~@DidMethod_orb -t ~@Transport_NoHttpOutbound
39 changes: 39 additions & 0 deletions .github/workflows/scenario-integration-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: Scenario Integration Tests

on:
pull_request:
branches:
- main
types: [opened, synchronize, reopened, ready_for_review]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

defaults:
run:
shell: bash

jobs:
test:
runs-on: ubuntu-latest
if: (github.event_name == 'pull_request' && github.event.pull_request.draft == false && github.repository == 'hyperledger/aries-cloudagent-python') || (github.event_name != 'pull_request')
steps:
- name: checkout-acapy
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install poetry
run: pipx install poetry
id: setup-poetry
- uses: actions/setup-python@v5
with:
python-version: "3.12"
cache: "poetry"
- name: Run Scenario Tests
run: |
# Build the docker image for testing
docker build -t acapy-test -f docker/Dockerfile.run .
cd scenarios
poetry install --no-root
poetry run pytest -m examples
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,6 @@ test-reports/

# Django stuff:
*.log
*.lock
local_settings.py
db.sqlite3

Expand Down
14 changes: 7 additions & 7 deletions aries_cloudagent/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,16 @@ def init_debug(args):

# --debug to use microsoft's visual studio remote debugger
if ENABLE_PTVSD or "--debug" in args:
DAP_HOST = os.getenv("PTVSD_HOST", None) or os.getenv("DAP_HOST", "localhost")
DAP_PORT = os.getenv("PTVSD_PORT", None) or os.getenv("DAP_PORT", 5678)
try:
import ptvsd
import debugpy

ptvsd.enable_attach()
print("ptvsd is running")
print("=== Waiting for debugger to attach ===")
# To pause execution until the debugger is attached:
ptvsd.wait_for_attach()
debugpy.listen((DAP_HOST, DAP_PORT))
print(f"=== Waiting for debugger to attach to {DAP_HOST}:{DAP_PORT} ===")
debugpy.wait_for_client()
except ImportError:
print("ptvsd library was not found")
print("debugpy library was not found")

if ENABLE_PYDEVD_PYCHARM or "--debug-pycharm" in args:
try:
Expand Down
32 changes: 24 additions & 8 deletions aries_cloudagent/config/argparse.py
Original file line number Diff line number Diff line change
Expand Up @@ -214,11 +214,11 @@ def get_settings(self, args: Namespace):
return settings


@group(CAT_START)
class DebugGroup(ArgumentGroup):
"""Debug settings."""
@group(CAT_PROVISION, CAT_START, CAT_UPGRADE)
class DebuggerGroup(ArgumentGroup):
"""Debugger settings."""

GROUP_NAME = "Debug"
GROUP_NAME = "Debugger"

def add_arguments(self, parser: ArgumentParser):
"""Add debug command line arguments to the parser."""
Expand All @@ -228,10 +228,28 @@ def add_arguments(self, parser: ArgumentParser):
env_var="ACAPY_DEBUG",
help=(
"Enables a remote debugging service that can be accessed "
"using ptvsd for Visual Studio Code. The framework will wait "
"for the debugger to connect at start-up. Default: false."
"using the Debug Adapter Protocol (supported by Visual Studio Code). "
"The framework will wait for the debugger to connect at start-up. "
"Default: false."
),
)

def get_settings(self, args: Namespace) -> dict:
"""Extract debug settings."""
settings = {}
if args.debug:
settings["debug.enabled"] = True
return settings


@group(CAT_START)
class DebugGroup(ArgumentGroup):
"""Debug settings."""

GROUP_NAME = "Debug"

def add_arguments(self, parser: ArgumentParser):
"""Add debug command line arguments to the parser."""
parser.add_argument(
"--debug-seed",
dest="debug_seed",
Expand Down Expand Up @@ -415,8 +433,6 @@ def add_arguments(self, parser: ArgumentParser):
def get_settings(self, args: Namespace) -> dict:
"""Extract debug settings."""
settings = {}
if args.debug:
settings["debug.enabled"] = True
if args.debug_connections:
settings["debug.connections"] = True
if args.debug_credentials:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ async def emit_event(self, session: ProfileSession, payload: Any = None):
# serialize payload before checking for webhook contents
if not payload:
payload = self.serialize()
else:
if not session.profile.settings.get("debug.webhooks"):
payload = V20CredExRecordWebhook(**payload)
payload = payload.__dict__

Expand Down
6 changes: 3 additions & 3 deletions aries_cloudagent/tests/test_main.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,9 @@ def test_ptvsd(self):
test_module.init_debug(["aca-py", "--debug"])

mock_import.assert_called_once()
self.assertEqual(mock_import.call_args[0][0], "ptvsd")
mock_import.return_value.enable_attach.assert_called_once()
mock_import.return_value.wait_for_attach.assert_called_once()
self.assertEqual(mock_import.call_args[0][0], "debugpy")
mock_import.return_value.listen.assert_called_once()
mock_import.return_value.wait_for_client.assert_called_once()

def test_ptvsd_import_x(self):
with mock.patch("builtins.__import__") as mock_import:
Expand Down
25 changes: 15 additions & 10 deletions conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -146,19 +146,24 @@ def stub_ursa_bbs_signatures() -> Stub:

def pytest_sessionstart(session):
global STUBS, POSTGRES_URL, ENABLE_PTVSD
ENABLE_PTVSD = os.getenv("ENABLE_PTVSD", False)
# --debug-vs to use microsoft's visual studio remote debugger
if ENABLE_PTVSD or "--debug" in sys.argv:
args = sys.argv

# copied from __main__.py:init_debug
ENABLE_PTVSD = os.getenv("ENABLE_PTVSD", "").lower()
ENABLE_PTVSD = ENABLE_PTVSD and ENABLE_PTVSD not in ("false", "0")

# --debug to use microsoft's visual studio remote debugger
if ENABLE_PTVSD or "--debug" in args:
DAP_HOST = os.getenv("PTVSD_HOST", None) or os.getenv("DAP_HOST", "localhost")
DAP_PORT = os.getenv("PTVSD_PORT", None) or os.getenv("DAP_PORT", 5678)
try:
import ptvsd
import debugpy

ptvsd.enable_attach(address=("0.0.0.0", 5678))
print("ptvsd is running")
print("=== Waiting for debugger to attach ===")
# To pause execution until the debugger is attached:
ptvsd.wait_for_attach()
debugpy.listen((DAP_HOST, DAP_PORT))
print(f"=== Waiting for debugger to attach to {DAP_HOST}:{DAP_PORT} ===")
debugpy.wait_for_client()
except ImportError:
print("ptvsd library was not found")
print("debugpy library was not found")

POSTGRES_URL = os.getenv("POSTGRES_URL")

Expand Down
6 changes: 3 additions & 3 deletions demo/features/0160-connection.feature
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Feature: RFC 0160 Aries agent connection functions
Then "Acme" has an active connection
And "Bob" has an active connection

@PR @Release @UnqualifiedDids
@Release @UnqualifiedDids
Examples:
| Acme_capabilities | Acme_extra | Bob_capabilities | Bob_extra |
| --public-did --did-exchange --emit-did-peer-2 | | --did-exchange --emit-did-peer-2 | |
Expand Down Expand Up @@ -40,7 +40,7 @@ Feature: RFC 0160 Aries agent connection functions
| --did-exchange --emit-did-peer-4 | | --emit-did-peer-4 | |
| --did-exchange --reuse-connections --emit-did-peer-4 | | --reuse-connections --emit-did-peer-4 | |

@PR @Release @MultiUseConnectionReuse
@Release @MultiUseConnectionReuse
Examples:
| Acme_capabilities | Acme_extra | Bob_capabilities | Bob_extra |
| --did-exchange --multi-use-invitations --emit-did-peer-2 | | --emit-did-peer-2 | |
Expand All @@ -56,7 +56,7 @@ Feature: RFC 0160 Aries agent connection functions
| --public-did --did-exchange --multi-use-invitations --emit-did-peer-4 | | --did-exchange --emit-did-peer-2 | |
| --public-did --did-exchange --multi-use-invitations --reuse-connections --emit-did-peer-2 | | --did-exchange --reuse-connections --emit-did-peer-4 | |

@PR @Release @WalletType_Askar_AnonCreds
@Release @WalletType_Askar_AnonCreds
Examples:
| Acme_capabilities | Acme_extra | Bob_capabilities | Bob_extra |
| --public-did --did-exchange --wallet-type askar-anoncreds --emit-did-peer-2 | | --did-exchange --wallet-type askar-anoncreds --emit-did-peer-2 | |
Expand Down
20 changes: 10 additions & 10 deletions demo/features/0453-issue-credential.feature
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ Feature: RFC 0453 Aries agent issue credential
And "Acme" offers and deletes a credential with data <Credential_data>
Then "Bob" has the exchange abandoned

@PR @Release @WalletType_Askar
@Release @WalletType_Askar
Examples:
| Acme_capabilities | Bob_capabilities | Schema_name | Credential_data |
| --public-did | | driverslicense | Data_DL_NormalizedValues |
Expand Down Expand Up @@ -110,7 +110,7 @@ Feature: RFC 0453 Aries agent issue credential
And "Acme" is ready to issue a credential for <Schema_name>
When "Bob" requests a credential with data <Credential_data> from "Acme" it fails

@PR @Release @WalletType_Askar
@Release @WalletType_Askar
Examples:
| Acme_capabilities | Bob_capabilities | Schema_name | Credential_data |
| --public-did | | driverslicense | Data_DL_NormalizedValues |
Expand Down Expand Up @@ -141,13 +141,13 @@ Feature: RFC 0453 Aries agent issue credential
Then "Bob" has the json-ld credential issued
And "Acme" has the exchange completed

@PR @Release @WalletType_Askar
@Release @WalletType_Askar
Examples:
| Acme_capabilities | Bob_capabilities | Schema_name | Credential_data | Key_type | Sig_type |
| --public-did --cred-type json-ld | | driverslicense | Data_DL_NormalizedValues | ed25519 | Ed25519Signature2018 |
| --public-did --cred-type json-ld | | driverslicense | Data_DL_NormalizedValues | ed25519 | Ed25519Signature2020 |

@PR @Release @WalletType_Askar @BBS
@Release @WalletType_Askar @BBS
Examples:
| Acme_capabilities | Bob_capabilities | Schema_name | Credential_data | Key_type | Sig_type |
| --public-did --cred-type json-ld | | driverslicense | Data_DL_NormalizedValues | bls12381g2 | BbsBlsSignature2020 |
Expand Down Expand Up @@ -193,13 +193,13 @@ Feature: RFC 0453 Aries agent issue credential
When "Acme" offers "Bob" a json-ld credential with data <Credential_data> and <Sig_type>
Then "Bob" has the json-ld credential issued

@PR @Release @WalletType_Askar
@Release @WalletType_Askar
Examples:
| Acme_capabilities | Bob_capabilities | Schema_name | Credential_data | Key_type | Sig_type |
| --public-did --cred-type json-ld | | driverslicense | Data_DL_NormalizedValues | ed25519 | Ed25519Signature2018 |
| --public-did --cred-type json-ld | | driverslicense | Data_DL_NormalizedValues | ed25519 | Ed25519Signature2020 |

@PR @Release @WalletType_Askar @BBS
@Release @WalletType_Askar @BBS
Examples:
| Acme_capabilities | Bob_capabilities | Schema_name | Credential_data | Key_type | Sig_type |
| --public-did --cred-type json-ld | | driverslicense | Data_DL_NormalizedValues | bls12381g2 | BbsBlsSignature2020 |
Expand Down Expand Up @@ -262,13 +262,13 @@ Feature: RFC 0453 Aries agent issue credential
When "Bob" requests a json-ld credential with data <Credential_data> from "Acme" with <Sig_type>
Then "Bob" has the json-ld credential issued

@PR @Release @WalletType_Askar
@Release @WalletType_Askar
Examples:
| Acme_capabilities | Bob_capabilities | Schema_name | Credential_data | Key_type | Sig_type |
| --public-did --cred-type json-ld | | driverslicense | Data_DL_NormalizedValues | ed25519 | Ed25519Signature2018 |
| --public-did --cred-type json-ld | | driverslicense | Data_DL_NormalizedValues | ed25519 | Ed25519Signature2020 |

@PR @Release @WalletType_Askar @BBS
@Release @WalletType_Askar @BBS
Examples:
| Acme_capabilities | Bob_capabilities | Schema_name | Credential_data | Key_type | Sig_type |
| --public-did --cred-type json-ld | | driverslicense | Data_DL_NormalizedValues | bls12381g2 | BbsBlsSignature2020 |
Expand All @@ -290,13 +290,13 @@ Feature: RFC 0453 Aries agent issue credential
| --public-did --cred-type json-ld --mediation | --mediation | driverslicense | Data_DL_NormalizedValues | bls12381g2 | BbsBlsSignature2020 |
| --public-did --cred-type json-ld --multitenant | --multitenant | driverslicense | Data_DL_NormalizedValues | bls12381g2 | BbsBlsSignature2020 |

@PR @Release @WalletType_Askar_AnonCreds
@Release @WalletType_Askar_AnonCreds
Examples:
| Acme_capabilities | Bob_capabilities | Schema_name | Credential_data | Key_type | Sig_type |
| --public-did --cred-type json-ld --wallet-type askar-anoncreds | --wallet-type askar-anoncreds | driverslicense | Data_DL_NormalizedValues | ed25519 | Ed25519Signature2018 |
| --public-did --cred-type json-ld --wallet-type askar-anoncreds | --wallet-type askar-anoncreds | driverslicense | Data_DL_NormalizedValues | ed25519 | Ed25519Signature2020 |

@PR @Release @WalletType_Askar_AnonCreds @BBS
@Release @WalletType_Askar_AnonCreds @BBS
Examples:
| Acme_capabilities | Bob_capabilities | Schema_name | Credential_data | Key_type | Sig_type |
| --public-did --cred-type json-ld --wallet-type askar-anoncreds | --wallet-type askar-anoncreds | driverslicense | Data_DL_NormalizedValues | bls12381g2 | BbsBlsSignature2020 |
Expand Down
Loading

0 comments on commit c08e416

Please sign in to comment.