refactoring some code by removing unnecessary checks and moving tests block to root /

This commit is contained in:
2026-07-24 17:13:37 +03:00
parent 26b857ed84
commit 1d25b0edc3
9 changed files with 35 additions and 15 deletions

13
main.py
View File

@@ -1,5 +1,6 @@
from fastapi import FastAPI
from src.web.protected_routes.routes import router as protected_router
from pathlib import Path
import uvicorn
app=FastAPI(root_path="/")
@@ -9,7 +10,19 @@ app.include_router(router=protected_router)
def root()->dict:
return {"root":"hello, this is root"}
def create_dirs():
dirs_to_create=("./DB",
"./upload",
"./upload_bad",
"./upload_finished")
for x in dirs_to_create:
Path(x).mkdir(parents=True, exist_ok=True)
def main():
create_dirs()
uvicorn.run("main:app", reload=True)
if __name__=="__main__":

0
pytest.ini Normal file
View File

View File

@@ -22,6 +22,7 @@ class CurrentUser:
def _check(self, form_data_email:str, form_data_password:str,):
'''check user by email'''
user=self.crud_db_actions.get_user_by_email(form_data_email)
if user is None:
raise self.error.credentials_error(detail="Wrong credentials")
@@ -36,20 +37,21 @@ class CurrentUser:
def get_current_user(self, token:str)->UserOut:
payload=self.jwt_service.jwt_decode(token)
if (sub:=payload.get("sub")) is None:
raise self.error.credentials_error(detail="Jwt token is incorrect")
sub=payload.get("sub")
try:
sub=UUID(sub)
except (ValueError, TypeError):
raise self.error.credentials_error(detail="Jwt token is incorrect")
except (ValueError, TypeError) as e:
raise self.error.credentials_error(detail="Jwt token is incorrect") from e
user=self.crud_db_actions.get_user_by_id(sub)
if user is None:
raise self.error.not_found_error(detail="User with this email address not found")
if user.status is False:
raise self.error.credentials_error(detail="This user is deactivated")
return UserOut.model_validate(user)
@@ -61,12 +63,13 @@ class CurrentUser:
def create_refresh_token(self,user_id:UUID, request:Request)->str:
token, jti=self.jwt_service.create_refresh_token({"sub":str(user_id)})
try:
jti=UUID(jti)
except (ValueError, TypeError):
raise self.error.credentials_error(detail="Jwt token is incorrect")
except (ValueError, TypeError) as e:
raise self.error.credentials_error(detail="Jwt token is incorrect") from e
'''create new refresh token if all the checks are successful'''
token_record=RefreshTokensCreate(
@@ -83,16 +86,19 @@ class CurrentUser:
def refresh_token(self, refresh_token:str, request:Request)->tuple[str, str]:
'''decode old refresh token'''
old_refresh_token=self.jwt_service.jwt_decode(refresh_token)
if (sub:=old_refresh_token.get("sub")) is None or (old_jti:=old_refresh_token.get("jti")) is None:
sub=old_refresh_token.get("sub")
if (old_jti:=old_refresh_token.get("jti")) is None:
raise self.error.credentials_error(detail="Jwt token is incorrect")
try:
old_jti=UUID(old_jti)
sub=UUID(sub)
except (ValueError, TypeError):
raise self.error.credentials_error(detail="Jwt token is incorrect")
except (ValueError, TypeError) as e:
raise self.error.credentials_error(detail="Jwt token is incorrect") from e
'''old refresh token check'''
@@ -122,6 +128,7 @@ class CurrentUser:
'''create new refresh token if all the checks are successful'''
new_refresh_token, new_jti=self.jwt_service.create_refresh_token({"sub":str(sub)})
new_access_token=self.create_access_token(user_id=sub)
try:
new_jti=UUID(new_jti)
except (ValueError, TypeError):
@@ -152,11 +159,12 @@ class CurrentUser:
payload=self.jwt_service.jwt_decode(refresh_token)
if (jti:=payload.get("jti")) is None:
raise self.error.credentials_error(detail="Invalid Refresh Token")
raise self.error.credentials_error(detail="Jwt token is incorrect")
try:
jti=UUID(jti)
except (ValueError, TypeError):
raise self.error.credentials_error(detail="Jwt token is incorrect")
except (ValueError, TypeError) as e:
raise self.error.credentials_error(detail="Jwt token is incorrect") from e
current_token = self.jwt_db_actions.get_token_by_id(jti)
if current_token is None:

View File

@@ -34,7 +34,6 @@ class Jwt:
user_info=data.copy()
user_info.update({"exp": datetime.now(timezone.utc)+timedelta(minutes=env_settings.ACCESS_TOKEN_EXPIRE_MINUTES),
"token_type":"access"})
print(f"DEBUG: expires at {datetime.now(timezone.utc)+timedelta(minutes=env_settings.ACCESS_TOKEN_EXPIRE_MINUTES)}, minutes={env_settings.ACCESS_TOKEN_EXPIRE_MINUTES}")
return jwt.encode(user_info, env_settings.SECRET_KEY, env_settings.ALGORITHM)
@@ -57,7 +56,7 @@ class Jwt:
payload=jwt.decode(token, env_settings.SECRET_KEY, algorithms=[env_settings.ALGORITHM])
if (payload.get("sub")) is None:
raise self.error.credentials_error(detail="Sub block is missing")
raise self.error.credentials_error(detail="Jwt token is incorrect")
except JWTError as e:
raise self.error.credentials_error(detail="JWTerror") from e

0
tests/conftest.py Normal file
View File

0
tests/e2e/conftest.py Normal file
View File

View File

0
tests/unit/conftest.py Normal file
View File