Skip to content

Commit

Permalink
Merge pull request #11 from shiningflash/refactoring
Browse files Browse the repository at this point in the history
Refactor: migrate utils to common module and reorganize test structure
  • Loading branch information
shiningflash authored Dec 5, 2024
2 parents 7e636ba + 9dde383 commit c8eef52
Show file tree
Hide file tree
Showing 26 changed files with 30 additions and 30 deletions.
2 changes: 1 addition & 1 deletion config.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from pydantic import Field, field_validator, ConfigDict
from pydantic_settings import BaseSettings
from src.sdk.utils.logger import logger
from src.common.logger import logger


class Settings(BaseSettings):
Expand Down
2 changes: 1 addition & 1 deletion docs/sdk_usage.md
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ The SDK includes comprehensive logging for debugging and auditing. Logs are cate
Example of enabling logger in your application:

```python
from src.sdk.utils.logger import logger
from src.common.logger import logger
logger.info("Application started.")
```
2 changes: 1 addition & 1 deletion docs/webhook_guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ The SDK provides a `verify_signature` utility to validate the HMAC signature. He
Example Code:

```python
from src.sdk.utils.validators import verify_signature
from src.common.validators import verify_signature

try:
verify_signature(message=raw_payload, signature=auth_header, secret=WEBHOOK_SECRET)
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion src/sdk/utils/exceptions.py → src/common/exceptions.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from ..utils.logger import logger
from .logger import logger


class ApiError(Exception):
Expand Down
File renamed without changes.
File renamed without changes.
4 changes: 2 additions & 2 deletions src/sdk/utils/retry.py → src/common/retry.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import time
from functools import wraps
from ..utils.logger import logger
from ..utils.exceptions import TransientError
from .logger import logger
from .exceptions import TransientError


def retry(max_retries: int = 3, backoff: int = 2, retry_on: tuple = (502, 503)):
Expand Down
2 changes: 1 addition & 1 deletion src/sdk/utils/validators.py → src/common/validators.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from pydantic import ValidationError
from functools import wraps
from typing import Any, Callable
from ..utils.logger import logger
from .logger import logger


def validate_request(model: Any):
Expand Down
8 changes: 4 additions & 4 deletions src/sdk/client.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import requests
from typing import Any
from config import settings
from .utils.logger import logger
from .utils.requests import handle_request_errors
from .utils.exceptions import UnauthorizedError, NotFoundError, ServerError, ApiError, TransientError
from .utils.retry import retry
from src.common.logger import logger
from ..common.requests import handle_request_errors
from ..common.exceptions import UnauthorizedError, NotFoundError, ServerError, ApiError, TransientError
from ..common.retry import retry


class ApiClient:
Expand Down
6 changes: 3 additions & 3 deletions src/sdk/features/contacts.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
from typing import Dict, List
from ..client import ApiClient
from ..schemas.contacts import CreateContactRequest, Contact, ListContactsResponse
from ..utils.validators import validate_request, validate_response
from ..utils.exceptions import handle_exceptions
from ..utils.logger import logger
from src.common.validators import validate_request, validate_response
from src.common.exceptions import handle_exceptions
from src.common.logger import logger


class Contacts:
Expand Down
8 changes: 4 additions & 4 deletions src/sdk/features/messages.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
from typing import Dict, List
from ..client import ApiClient
from ..schemas.messages import CreateMessageRequest, Message, ListMessagesResponse
from ..utils.validators import validate_request, validate_response
from ..utils.exceptions import handle_exceptions
from ..utils.logger import logger
from ..utils.validators import verify_signature
from src.common.validators import validate_request, validate_response
from src.common.exceptions import handle_exceptions
from src.common.logger import logger
from src.common.validators import verify_signature


class Messages:
Expand Down
6 changes: 3 additions & 3 deletions src/server/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
from ..sdk.client import ApiClient
from .schemas import WebhookPayload
from ..sdk.features.messages import Messages
from ..sdk.utils.validators import verify_signature
from src.sdk.utils.logger import webhook_logger as logger
from src.common.validators import verify_signature
from src.common.logger import webhook_logger as logger

# Initialize FastAPI app
app = FastAPI()
Expand All @@ -19,7 +19,7 @@

@app.post("/webhooks")
async def handle_webhook(
payload: WebhookPayload, # Ensure FastAPI uses this schema for validation
payload: WebhookPayload,
authorization: str = Header(...),
request: Request = None,
):
Expand Down
Empty file removed tests/e2e/__init__.py
Empty file.
Empty file removed tests/integration/__init__.py
Empty file.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import pytest
from src.sdk.utils.exceptions import NotFoundError
from src.common.exceptions import NotFoundError


def test_create_contact_success(contacts, mock_api_client):
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import pytest
from src.sdk.utils.exceptions import ApiError, NotFoundError, UnauthorizedError
from src.common.exceptions import ApiError, NotFoundError, UnauthorizedError

def test_send_message_success(messages, mock_api_client):
"""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from fastapi.testclient import TestClient
from config import settings
from src.server.app import app
from src.sdk.utils.validators import generate_signature
from src.common.validators import generate_signature

client = TestClient(app)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import pytest
from unittest.mock import patch, MagicMock
from src.sdk.client import ApiClient
from src.sdk.utils.exceptions import UnauthorizedError, NotFoundError, ServerError, ApiError
from src.common.exceptions import UnauthorizedError, NotFoundError, ServerError, ApiError
from config import settings


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from unittest.mock import MagicMock, patch
from src.sdk.features.contacts import Contacts
from src.sdk.client import ApiClient
from src.sdk.utils.exceptions import UnauthorizedError, NotFoundError, ApiError, PayloadValidationError
from src.common.exceptions import UnauthorizedError, NotFoundError, ApiError, PayloadValidationError
from src.sdk.schemas.contacts import CreateContactRequest


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from unittest.mock import MagicMock, patch
from src.sdk.features.messages import Messages
from src.sdk.client import ApiClient
from src.sdk.utils.exceptions import UnauthorizedError, NotFoundError, ApiError, PayloadValidationError
from src.common.exceptions import UnauthorizedError, NotFoundError, ApiError, PayloadValidationError
from src.sdk.schemas.messages import CreateMessageRequest


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from src.server.app import app
from config import settings

from src.sdk.utils.validators import generate_signature
from src.common.validators import generate_signature

client = TestClient(app)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
import json

from config import settings
from src.sdk.utils.validators import verify_signature
from src.sdk.utils.validators import generate_signature
from src.common.validators import verify_signature
from src.common.validators import generate_signature


def test_valid_signature():
Expand Down
Empty file removed tests/unit/test_sdk/__init__.py
Empty file.
Empty file removed tests/unit/test_server/__init__.py
Empty file.

0 comments on commit c8eef52

Please sign in to comment.