mirror of
https://github.com/cssgunc/compass.git
synced 2025-04-10 06:10:17 -04:00
Fix type errors for enum, Tests passing
This commit is contained in:
parent
012f941da7
commit
4259e26a9c
|
@ -1,7 +1,7 @@
|
||||||
""" Defines the table for storing users """
|
""" Defines the table for storing users """
|
||||||
|
|
||||||
# Import our mapped SQL types from SQLAlchemy
|
# Import our mapped SQL types from SQLAlchemy
|
||||||
from sqlalchemy import Integer, String, DateTime, ARRAY
|
from sqlalchemy import Integer, String, DateTime, ARRAY, Enum
|
||||||
|
|
||||||
|
|
||||||
# Import mapping capabilities from the SQLAlchemy ORM
|
# Import mapping capabilities from the SQLAlchemy ORM
|
||||||
|
@ -19,6 +19,7 @@ from datetime import datetime
|
||||||
# Import enums for Role and Program
|
# Import enums for Role and Program
|
||||||
from .program_enum import ProgramEnum
|
from .program_enum import ProgramEnum
|
||||||
from .user_enum import RoleEnum
|
from .user_enum import RoleEnum
|
||||||
|
from ..models.enum_for_models import UserTypeEnum, ProgramTypeEnum
|
||||||
|
|
||||||
#Import models for User methods
|
#Import models for User methods
|
||||||
from ..models.user_model import User
|
from ..models.user_model import User
|
||||||
|
@ -36,9 +37,9 @@ class UserEntity(EntityBase):
|
||||||
id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)
|
id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)
|
||||||
created_at: Mapped[datetime] = mapped_column(DateTime, default=datetime.now)
|
created_at: Mapped[datetime] = mapped_column(DateTime, default=datetime.now)
|
||||||
username: Mapped[str] = mapped_column(String(32), nullable=False, default="", unique=True )
|
username: Mapped[str] = mapped_column(String(32), nullable=False, default="", unique=True )
|
||||||
role: Mapped[RoleEnum] = mapped_column(String, nullable=False)
|
role: Mapped[UserTypeEnum] = mapped_column(Enum(UserTypeEnum), nullable=False)
|
||||||
email: Mapped[str] = mapped_column(String(50), nullable=False, unique=True)
|
email: Mapped[str] = mapped_column(String(50), nullable=False, unique=True)
|
||||||
program: Mapped[list[str]] = mapped_column(ARRAY(String), nullable=False)
|
program: Mapped[list[ProgramTypeEnum]] = mapped_column(ARRAY(Enum(ProgramTypeEnum)), nullable=False)
|
||||||
experience: Mapped[int] = mapped_column(Integer, nullable=False)
|
experience: Mapped[int] = mapped_column(Integer, nullable=False)
|
||||||
group: Mapped[str] = mapped_column(String(50))
|
group: Mapped[str] = mapped_column(String(50))
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,6 @@ class User(BaseModel):
|
||||||
email: str = Field(..., description="The e-mail of the user")
|
email: str = Field(..., description="The e-mail of the user")
|
||||||
experience: int = Field(..., description="Years of Experience of the User")
|
experience: int = Field(..., description="Years of Experience of the User")
|
||||||
group: str
|
group: str
|
||||||
programtype: List[str]
|
programtype: List[ProgramTypeEnum]
|
||||||
usertype: str
|
usertype: UserTypeEnum
|
||||||
created_at: Optional[datetime]
|
created_at: Optional[datetime]
|
||||||
|
|
|
@ -52,7 +52,8 @@ class UserService:
|
||||||
|
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
user_entity = self.get_user_by_id(user.id)
|
user_model = self.get_user_by_id(user.id)
|
||||||
|
return user_model
|
||||||
except:
|
except:
|
||||||
# if does not exist, create new object
|
# if does not exist, create new object
|
||||||
user_entity = UserEntity.from_model(user)
|
user_entity = UserEntity.from_model(user)
|
||||||
|
|
|
@ -17,9 +17,10 @@ def test_create(user_svc: UserService):
|
||||||
assert user1 is not None
|
assert user1 is not None
|
||||||
assert user1.id is not None
|
assert user1.id is not None
|
||||||
|
|
||||||
def test_create_id_exists(user_svc: UserService):
|
|
||||||
|
def test_create_id_exists(user_svc: UserService):
|
||||||
"""Test creating a user with id conflict"""
|
"""Test creating a user with id conflict"""
|
||||||
user1 = user_svc.create(volunteer)
|
user1 = user_svc.create(volunteer)
|
||||||
assert user1 is not None
|
assert user1 is not None
|
||||||
assert user1.id is not None
|
assert user1.id is not None
|
||||||
|
|
||||||
|
@ -29,19 +30,15 @@ def test_get_all(user_svc: UserService):
|
||||||
users = user_svc.all()
|
users = user_svc.all()
|
||||||
assert len(users) == 3
|
assert len(users) == 3
|
||||||
|
|
||||||
|
|
||||||
def test_get_user_by_id(user_svc: UserService):
|
def test_get_user_by_id(user_svc: UserService):
|
||||||
"""Test getting a user by an id"""
|
"""Test getting a user by an id"""
|
||||||
user = user_svc.get_user_by_id(volunteer.id)
|
user = user_svc.get_user_by_id(volunteer.id)
|
||||||
assert user is not None
|
assert user is not None
|
||||||
assert user.id is not None
|
assert user.id is not None
|
||||||
|
|
||||||
|
|
||||||
def test_get_user_by_id_nonexistent(user_svc: UserService):
|
def test_get_user_by_id_nonexistent(user_svc: UserService):
|
||||||
"""Test getting a user by id that does not exist"""
|
"""Test getting a user by id that does not exist"""
|
||||||
with pytest.raises(Exception):
|
with pytest.raises(Exception):
|
||||||
user_svc.get_by_id(5)
|
user_svc.get_by_id(5)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -17,9 +17,9 @@ volunteer = User(
|
||||||
email="volunteer@compass.com",
|
email="volunteer@compass.com",
|
||||||
experience=1,
|
experience=1,
|
||||||
group="volunteers",
|
group="volunteers",
|
||||||
programtype=[programs.COMMUNITY.value],
|
programtype=[programs.COMMUNITY],
|
||||||
created_at=datetime.now(),
|
created_at=datetime.now(),
|
||||||
usertype=UserTypeEnum.VOLUNTEER.value
|
usertype=UserTypeEnum.VOLUNTEER
|
||||||
)
|
)
|
||||||
|
|
||||||
employee = User(
|
employee = User(
|
||||||
|
@ -28,9 +28,9 @@ employee = User(
|
||||||
email="employee@compass.com",
|
email="employee@compass.com",
|
||||||
experience=5,
|
experience=5,
|
||||||
group="employees",
|
group="employees",
|
||||||
programtype=[programs.DOMESTIC.value, programs.ECONOMIC.value],
|
programtype=[programs.DOMESTIC, programs.ECONOMIC],
|
||||||
created_at=datetime.now(),
|
created_at=datetime.now(),
|
||||||
usertype=roles.EMPLOYEE.value,
|
usertype=roles.EMPLOYEE,
|
||||||
)
|
)
|
||||||
|
|
||||||
admin = User(
|
admin = User(
|
||||||
|
@ -39,9 +39,9 @@ admin = User(
|
||||||
email="admin@compass.com",
|
email="admin@compass.com",
|
||||||
experience=10,
|
experience=10,
|
||||||
group="admin",
|
group="admin",
|
||||||
programtype=[programs.ECONOMIC.value, programs.DOMESTIC.value, programs.COMMUNITY.value],
|
programtype=[programs.ECONOMIC, programs.DOMESTIC, programs.COMMUNITY],
|
||||||
created_at=datetime.now(),
|
created_at=datetime.now(),
|
||||||
usertype=roles.ADMIN.value,
|
usertype=roles.ADMIN,
|
||||||
)
|
)
|
||||||
|
|
||||||
newUser = User(
|
newUser = User(
|
||||||
|
@ -50,9 +50,9 @@ newUser = User(
|
||||||
email="new@compass.com",
|
email="new@compass.com",
|
||||||
experience=1,
|
experience=1,
|
||||||
group="volunteer",
|
group="volunteer",
|
||||||
programtype=[programs.ECONOMIC.value],
|
programtype=[programs.ECONOMIC],
|
||||||
created_at=datetime.now(),
|
created_at=datetime.now(),
|
||||||
usertype=roles.VOLUNTEER.value
|
usertype=roles.VOLUNTEER
|
||||||
)
|
)
|
||||||
|
|
||||||
users = [volunteer, employee, admin]
|
users = [volunteer, employee, admin]
|
||||||
|
|
Loading…
Reference in New Issue
Block a user