From 290d4dbe007f26fc5e80ae8f02ddc9cd6da02881 Mon Sep 17 00:00:00 2001 From: Michal Zander <mzander@syncad.com> Date: Mon, 31 Mar 2025 12:38:30 +0000 Subject: [PATCH] Add patterns for REST API --- tests/tavern/common.yaml | 9 +++++++ .../block_hash.pat.json | 1 + .../block_hash.tavern.yaml | 21 +++++++++++++++ .../get_reputation/blocktrades.pat.json | 1 + .../get_reputation/blocktrades.tavern.yaml | 23 ++++++++++++++++ tests/tavern/get_reputation/gtg.pat.json | 1 + tests/tavern/get_reputation/gtg.tavern.yaml | 23 ++++++++++++++++ .../non_existent_account.pat.json | 6 +++++ .../non_existent_account.tavern.yaml | 26 +++++++++++++++++++ tests/tavern/pytest.ini | 4 +++ 10 files changed, 115 insertions(+) create mode 100644 tests/tavern/common.yaml create mode 100644 tests/tavern/get_rep_last_synced_block/block_hash.pat.json create mode 100644 tests/tavern/get_rep_last_synced_block/block_hash.tavern.yaml create mode 100644 tests/tavern/get_reputation/blocktrades.pat.json create mode 100644 tests/tavern/get_reputation/blocktrades.tavern.yaml create mode 100644 tests/tavern/get_reputation/gtg.pat.json create mode 100644 tests/tavern/get_reputation/gtg.tavern.yaml create mode 100644 tests/tavern/get_reputation/non_existent_account.pat.json create mode 100644 tests/tavern/get_reputation/non_existent_account.tavern.yaml create mode 100644 tests/tavern/pytest.ini diff --git a/tests/tavern/common.yaml b/tests/tavern/common.yaml new file mode 100644 index 0000000..313a8be --- /dev/null +++ b/tests/tavern/common.yaml @@ -0,0 +1,9 @@ +--- + name: Common test values + description: Common values for tests + + variables: + service: + proto: http + server: "{tavern.env_vars.REPTRACKER_ADDRESS}" + port: "{tavern.env_vars.REPTRACKER_PORT}" diff --git a/tests/tavern/get_rep_last_synced_block/block_hash.pat.json b/tests/tavern/get_rep_last_synced_block/block_hash.pat.json new file mode 100644 index 0000000..d4375a2 --- /dev/null +++ b/tests/tavern/get_rep_last_synced_block/block_hash.pat.json @@ -0,0 +1 @@ +5000000 \ No newline at end of file diff --git a/tests/tavern/get_rep_last_synced_block/block_hash.tavern.yaml b/tests/tavern/get_rep_last_synced_block/block_hash.tavern.yaml new file mode 100644 index 0000000..eb43d7e --- /dev/null +++ b/tests/tavern/get_rep_last_synced_block/block_hash.tavern.yaml @@ -0,0 +1,21 @@ +--- + test_name: reptracker PostgREST + + marks: + - patterntest + + includes: + - !include ../common.yaml + + stages: + - name: test + request: + url: "{service.proto:s}://{service.server:s}:{service.port}/rpc/get_rep_last_synced_block" + method: POST + headers: + content-type: application/json + accept: application/json + response: + status_code: 200 + verify_response_with: + function: validate_response:compare_rest_response_with_pattern diff --git a/tests/tavern/get_reputation/blocktrades.pat.json b/tests/tavern/get_reputation/blocktrades.pat.json new file mode 100644 index 0000000..8c0474e --- /dev/null +++ b/tests/tavern/get_reputation/blocktrades.pat.json @@ -0,0 +1 @@ +69 \ No newline at end of file diff --git a/tests/tavern/get_reputation/blocktrades.tavern.yaml b/tests/tavern/get_reputation/blocktrades.tavern.yaml new file mode 100644 index 0000000..0315665 --- /dev/null +++ b/tests/tavern/get_reputation/blocktrades.tavern.yaml @@ -0,0 +1,23 @@ +--- + test_name: reptracker PostgREST + + marks: + - patterntest + + includes: + - !include ../common.yaml + + stages: + - name: test + request: + url: "{service.proto:s}://{service.server:s}:{service.port}/rpc/get_account_reputation" + method: POST + headers: + content-type: application/json + accept: application/json + json: + account-name: "blocktrades" + response: + status_code: 200 + verify_response_with: + function: validate_response:compare_rest_response_with_pattern \ No newline at end of file diff --git a/tests/tavern/get_reputation/gtg.pat.json b/tests/tavern/get_reputation/gtg.pat.json new file mode 100644 index 0000000..f0b5c72 --- /dev/null +++ b/tests/tavern/get_reputation/gtg.pat.json @@ -0,0 +1 @@ +57 \ No newline at end of file diff --git a/tests/tavern/get_reputation/gtg.tavern.yaml b/tests/tavern/get_reputation/gtg.tavern.yaml new file mode 100644 index 0000000..9383c2b --- /dev/null +++ b/tests/tavern/get_reputation/gtg.tavern.yaml @@ -0,0 +1,23 @@ +--- + test_name: reptracker PostgREST + + marks: + - patterntest + + includes: + - !include ../common.yaml + + stages: + - name: test + request: + url: "{service.proto:s}://{service.server:s}:{service.port}/rpc/get_account_reputation" + method: POST + headers: + content-type: application/json + accept: application/json + json: + account-name: "gtg" + response: + status_code: 200 + verify_response_with: + function: validate_response:compare_rest_response_with_pattern \ No newline at end of file diff --git a/tests/tavern/get_reputation/non_existent_account.pat.json b/tests/tavern/get_reputation/non_existent_account.pat.json new file mode 100644 index 0000000..fe05f12 --- /dev/null +++ b/tests/tavern/get_reputation/non_existent_account.pat.json @@ -0,0 +1,6 @@ +{ + "code": "P0001", + "details": null, + "hint": null, + "message": "Account 'themarkymark' does not exist" +} \ No newline at end of file diff --git a/tests/tavern/get_reputation/non_existent_account.tavern.yaml b/tests/tavern/get_reputation/non_existent_account.tavern.yaml new file mode 100644 index 0000000..b2a154b --- /dev/null +++ b/tests/tavern/get_reputation/non_existent_account.tavern.yaml @@ -0,0 +1,26 @@ +--- + test_name: reptracker PostgREST + + marks: + - patterntest + - negative + + includes: + - !include ../common.yaml + + stages: + - name: test + request: + url: "{service.proto:s}://{service.server:s}:{service.port}/rpc/get_account_reputation" + method: POST + headers: + content-type: application/json + accept: application/json + json: + account-name: "themarkymark" + response: + status_code: 400 + verify_response_with: + function: validate_response:compare_rest_response_with_pattern + extra_kwargs: + error_response: true diff --git a/tests/tavern/pytest.ini b/tests/tavern/pytest.ini new file mode 100644 index 0000000..6bdcaf0 --- /dev/null +++ b/tests/tavern/pytest.ini @@ -0,0 +1,4 @@ +[pytest] +markers = + patterntest: Mark tests using patterns to compare results + negative: Mark error tests -- GitLab