Skip to content

Commit

Permalink
Merge pull request #52 from PSNAppz/develop
Browse files Browse the repository at this point in the history
Update validate_signature error code and message + test cases
  • Loading branch information
venky-ganapathy authored Jun 21, 2024
2 parents 94b4e4f + 34bed05 commit d2d889d
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 25 deletions.
5 changes: 2 additions & 3 deletions src/openg2p_spar_mapper_api/services/request_validations.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
from openg2p_fastapi_common.service import BaseService
from openg2p_g2pconnect_common_lib.schemas import (
AsyncResponseStatusReasonCodeEnum,
SecurityErrorCodes,
SyncResponseStatusReasonCodeEnum,
)

Expand All @@ -12,8 +11,8 @@ class RequestValidation(BaseService):
def validate_signature(self, is_signature_valid) -> None:
if not is_signature_valid:
raise RequestValidationException(
code=SecurityErrorCodes.INVALID_JWT_SIGNATURE,
message=SecurityErrorCodes.INVALID_JWT_SIGNATURE,
code=SyncResponseStatusReasonCodeEnum.rjct_jwt_invalid,
message=SyncResponseStatusReasonCodeEnum.rjct_jwt_invalid,
)

return None
Expand Down
62 changes: 43 additions & 19 deletions tests/test_async_mapper_controller.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
AsyncResponse,
AsyncResponseMessage,
RequestHeader,
SecurityErrorCodes,
StatusEnum,
SyncResponseStatusReasonCodeEnum,
)
from openg2p_g2pconnect_mapper_lib.schemas import (
LinkRequest,
Expand Down Expand Up @@ -49,8 +49,8 @@
def mock_validate_signature(is_signature_valid):
if not is_signature_valid:
raise RequestValidationException(
code=SecurityErrorCodes.INVALID_JWT_SIGNATURE,
message=SecurityErrorCodes.INVALID_JWT_SIGNATURE,
code=SyncResponseStatusReasonCodeEnum.rjct_jwt_invalid.value,
message=SyncResponseStatusReasonCodeEnum.rjct_jwt_invalid.value,
)


Expand Down Expand Up @@ -173,8 +173,8 @@ async def test_link_async_invalid_signature(
timestamp=datetime.utcnow().isoformat(),
ack_status="NACK",
error={
"code": SecurityErrorCodes.INVALID_JWT_SIGNATURE,
"message": SecurityErrorCodes.INVALID_JWT_SIGNATURE,
"code": SyncResponseStatusReasonCodeEnum.rjct_jwt_invalid.value,
"message": SyncResponseStatusReasonCodeEnum.rjct_jwt_invalid.value,
},
)
)
Expand Down Expand Up @@ -218,8 +218,14 @@ async def test_link_async_invalid_signature(
assert actual_response.message.correlation_id == "error_correlation_id"
assert actual_response.message.ack_status == AsyncAck.NACK
assert actual_response.message.timestamp == error_response.message.timestamp
assert actual_response.message.error.code == "INVALID JWT SIGNATURE"
assert actual_response.message.error.message == "INVALID JWT SIGNATURE"
assert (
actual_response.message.error.code
== SyncResponseStatusReasonCodeEnum.rjct_jwt_invalid.value
)
assert (
actual_response.message.error.message
== SyncResponseStatusReasonCodeEnum.rjct_jwt_invalid.value
)


@pytest.mark.asyncio
Expand Down Expand Up @@ -411,8 +417,8 @@ async def test_update_async_invalid_signature(
timestamp=datetime.utcnow().isoformat(),
ack_status="NACK",
error={
"code": SecurityErrorCodes.INVALID_JWT_SIGNATURE,
"message": SecurityErrorCodes.INVALID_JWT_SIGNATURE,
"code": SyncResponseStatusReasonCodeEnum.rjct_jwt_invalid.value,
"message": SyncResponseStatusReasonCodeEnum.rjct_jwt_invalid.value,
},
)
)
Expand Down Expand Up @@ -456,8 +462,14 @@ async def test_update_async_invalid_signature(
assert actual_response.message.correlation_id == "error_correlation_id"
assert actual_response.message.ack_status == AsyncAck.NACK
assert actual_response.message.timestamp == error_response.message.timestamp
assert actual_response.message.error.code == "INVALID JWT SIGNATURE"
assert actual_response.message.error.message == "INVALID JWT SIGNATURE"
assert (
actual_response.message.error.code
== SyncResponseStatusReasonCodeEnum.rjct_jwt_invalid.value
)
assert (
actual_response.message.error.message
== SyncResponseStatusReasonCodeEnum.rjct_jwt_invalid.value
)


@pytest.mark.asyncio
Expand Down Expand Up @@ -647,8 +659,8 @@ async def test_resolve_async_invalid_signature(
timestamp=datetime.utcnow().isoformat(),
ack_status="NACK",
error={
"code": SecurityErrorCodes.INVALID_JWT_SIGNATURE,
"message": SecurityErrorCodes.INVALID_JWT_SIGNATURE,
"code": SyncResponseStatusReasonCodeEnum.rjct_jwt_invalid.value,
"message": SyncResponseStatusReasonCodeEnum.rjct_jwt_invalid.value,
},
)
)
Expand Down Expand Up @@ -692,8 +704,14 @@ async def test_resolve_async_invalid_signature(
assert actual_response.message.correlation_id == "error_correlation_id"
assert actual_response.message.ack_status == AsyncAck.NACK
assert actual_response.message.timestamp == error_response.message.timestamp
assert actual_response.message.error.code == "INVALID JWT SIGNATURE"
assert actual_response.message.error.message == "INVALID JWT SIGNATURE"
assert (
actual_response.message.error.code
== SyncResponseStatusReasonCodeEnum.rjct_jwt_invalid.value
)
assert (
actual_response.message.error.message
== SyncResponseStatusReasonCodeEnum.rjct_jwt_invalid.value
)


@pytest.mark.asyncio
Expand Down Expand Up @@ -883,8 +901,8 @@ async def test_unlink_async_invalid_signature(
timestamp=datetime.utcnow().isoformat(),
ack_status="NACK",
error={
"code": SecurityErrorCodes.INVALID_JWT_SIGNATURE,
"message": SecurityErrorCodes.INVALID_JWT_SIGNATURE,
"code": SyncResponseStatusReasonCodeEnum.rjct_jwt_invalid.value,
"message": SyncResponseStatusReasonCodeEnum.rjct_jwt_invalid.value,
},
)
)
Expand Down Expand Up @@ -928,8 +946,14 @@ async def test_unlink_async_invalid_signature(
assert actual_response.message.correlation_id == "error_correlation_id"
assert actual_response.message.ack_status == AsyncAck.NACK
assert actual_response.message.timestamp == error_response.message.timestamp
assert actual_response.message.error.code == "INVALID JWT SIGNATURE"
assert actual_response.message.error.message == "INVALID JWT SIGNATURE"
assert (
actual_response.message.error.code
== SyncResponseStatusReasonCodeEnum.rjct_jwt_invalid.value
)
assert (
actual_response.message.error.message
== SyncResponseStatusReasonCodeEnum.rjct_jwt_invalid.value
)


@pytest.mark.asyncio
Expand Down
5 changes: 2 additions & 3 deletions tests/test_sync_mapper_controller.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import pytest
from openg2p_g2pconnect_common_lib.schemas import (
RequestHeader,
SecurityErrorCodes,
StatusEnum,
SyncResponseHeader,
SyncResponseStatusReasonCodeEnum,
Expand Down Expand Up @@ -53,8 +52,8 @@
def mock_validate_signature(is_signature_valid):
if not is_signature_valid:
raise RequestValidationException(
code=SecurityErrorCodes.INVALID_JWT_SIGNATURE,
message=SecurityErrorCodes.INVALID_JWT_SIGNATURE,
code=SyncResponseStatusReasonCodeEnum.rjct_jwt_invalid,
message=SyncResponseStatusReasonCodeEnum.rjct_jwt_invalid,
)


Expand Down

0 comments on commit d2d889d

Please sign in to comment.