Skip to content

Commit

Permalink
fix CI
Browse files Browse the repository at this point in the history
  • Loading branch information
maany committed Sep 17, 2023
1 parent d989ac9 commit ab60fb0
Show file tree
Hide file tree
Showing 8 changed files with 21 additions and 16 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/pytest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install python3-dev libpq-dev # psycopg2
sudo apt-get install python3-dev
python -m pip install --upgrade pip
poetry env use 3.10
poetry install --no-root
Expand Down
3 changes: 2 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,6 @@
"tests"
],
"python.testing.unittestEnabled": false,
"python.testing.pytestEnabled": true
"python.testing.pytestEnabled": true,
"mypy.runUsingActiveInterpreter": true,
}
Empty file added lib/__init__.py
Empty file.
2 changes: 1 addition & 1 deletion lib/bac.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@ def __repr__(self):
return f"{__name__}"

def __str__(self):
return f"{__name__}"
return f"{__name__}"
11 changes: 4 additions & 7 deletions lib/primary_ports.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,25 +4,22 @@


class BaseInputPort(BaseAbstractClass):

def __init__(self):
super().__init__()

@abstractmethod
def execute(self, requestModel: BaseRequestModel):
pass


class BaseOutputPort(BaseAbstractClass):
def __init__(self):
super().__init__()

@abstractmethod
def presentSuccess(self, responseModel: BaseResponseModel):
raise NotImplementedError

@abstractmethod
def presentError(self, errorModel: BaseErrorResponseModel):
raise NotImplementedError



6 changes: 5 additions & 1 deletion lib/usecase_models.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,21 @@
from typing import Literal
from pydantic import BaseModel


class BaseRequestModel(BaseModel):
pass


class BaseAuthenticatedRequestModel(BaseRequestModel):
user_id: int
auth_token: str


class BaseResponseModel(BaseModel):
status: Literal[True] = True


class BaseErrorResponseModel(BaseModel):
status: Literal[False] = False
code: int
message: str
message: str
1 change: 0 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ ignore_missing_imports = true
plugins = ["pydantic.mypy"]
no_namespace_packages = true


[tool.black]
line-length = 120
target-version = ['py310']
Expand Down
12 changes: 8 additions & 4 deletions tests/test_usecase_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,12 @@
class ResponseModel(BaseResponseModel):
name: str


class RequestModel(BaseRequestModel):
name: str
type: str


class UseCase(BaseInputPort):
def __init__(self, presenter: BaseOutputPort):
super().__init__()
Expand All @@ -19,17 +21,19 @@ def execute(self, requestModel: RequestModel):
responseModel = ResponseModel(name=requestModel.name)
self.logger.info(f"Returning {responseModel}")
self.presenter.presentSuccess(responseModel)



class Presenter(BaseOutputPort):
def __init__(self):
super().__init__()
def presentSuccess(self, responseModel: ResponseModel):

def presentSuccess(self, responseModel: BaseErrorResponseModel):
print(f"Success: {responseModel}")

def presentError(self, errorModel: BaseErrorResponseModel):
print(f"Error: {errorModel}")


def test_usecase_models(caplog, capfd):
usecase: BaseInputPort = UseCase(presenter=Presenter())
requestModel = RequestModel(name="Test", type="Test")
Expand Down

0 comments on commit ab60fb0

Please sign in to comment.