mirror of
https://github.com/cssgunc/compass.git
synced 2025-04-06 20:50: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 """
|
||||
|
||||
# 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
|
||||
|
@ -19,6 +19,7 @@ from datetime import datetime
|
|||
# Import enums for Role and Program
|
||||
from .program_enum import ProgramEnum
|
||||
from .user_enum import RoleEnum
|
||||
from ..models.enum_for_models import UserTypeEnum, ProgramTypeEnum
|
||||
|
||||
#Import models for User methods
|
||||
from ..models.user_model import User
|
||||
|
@ -36,9 +37,9 @@ class UserEntity(EntityBase):
|
|||
id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)
|
||||
created_at: Mapped[datetime] = mapped_column(DateTime, default=datetime.now)
|
||||
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)
|
||||
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)
|
||||
group: Mapped[str] = mapped_column(String(50))
|
||||
|
||||
|
|
|
@ -12,6 +12,6 @@ class User(BaseModel):
|
|||
email: str = Field(..., description="The e-mail of the user")
|
||||
experience: int = Field(..., description="Years of Experience of the User")
|
||||
group: str
|
||||
programtype: List[str]
|
||||
usertype: str
|
||||
programtype: List[ProgramTypeEnum]
|
||||
usertype: UserTypeEnum
|
||||
created_at: Optional[datetime]
|
||||
|
|
|
@ -52,7 +52,8 @@ class UserService:
|
|||
|
||||
"""
|
||||
try:
|
||||
user_entity = self.get_user_by_id(user.id)
|
||||
user_model = self.get_user_by_id(user.id)
|
||||
return user_model
|
||||
except:
|
||||
# if does not exist, create new object
|
||||
user_entity = UserEntity.from_model(user)
|
||||
|
|
|
@ -17,9 +17,10 @@ def test_create(user_svc: UserService):
|
|||
assert user1 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"""
|
||||
user1 = user_svc.create(volunteer)
|
||||
user1 = user_svc.create(volunteer)
|
||||
assert user1 is not None
|
||||
assert user1.id is not None
|
||||
|
||||
|
@ -29,19 +30,15 @@ def test_get_all(user_svc: UserService):
|
|||
users = user_svc.all()
|
||||
assert len(users) == 3
|
||||
|
||||
|
||||
def test_get_user_by_id(user_svc: UserService):
|
||||
"""Test getting a user by an id"""
|
||||
user = user_svc.get_user_by_id(volunteer.id)
|
||||
assert user is not None
|
||||
assert user.id is not None
|
||||
|
||||
|
||||
def test_get_user_by_id_nonexistent(user_svc: UserService):
|
||||
"""Test getting a user by id that does not exist"""
|
||||
with pytest.raises(Exception):
|
||||
user_svc.get_by_id(5)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -17,9 +17,9 @@ volunteer = User(
|
|||
email="volunteer@compass.com",
|
||||
experience=1,
|
||||
group="volunteers",
|
||||
programtype=[programs.COMMUNITY.value],
|
||||
programtype=[programs.COMMUNITY],
|
||||
created_at=datetime.now(),
|
||||
usertype=UserTypeEnum.VOLUNTEER.value
|
||||
usertype=UserTypeEnum.VOLUNTEER
|
||||
)
|
||||
|
||||
employee = User(
|
||||
|
@ -28,9 +28,9 @@ employee = User(
|
|||
email="employee@compass.com",
|
||||
experience=5,
|
||||
group="employees",
|
||||
programtype=[programs.DOMESTIC.value, programs.ECONOMIC.value],
|
||||
programtype=[programs.DOMESTIC, programs.ECONOMIC],
|
||||
created_at=datetime.now(),
|
||||
usertype=roles.EMPLOYEE.value,
|
||||
usertype=roles.EMPLOYEE,
|
||||
)
|
||||
|
||||
admin = User(
|
||||
|
@ -39,9 +39,9 @@ admin = User(
|
|||
email="admin@compass.com",
|
||||
experience=10,
|
||||
group="admin",
|
||||
programtype=[programs.ECONOMIC.value, programs.DOMESTIC.value, programs.COMMUNITY.value],
|
||||
programtype=[programs.ECONOMIC, programs.DOMESTIC, programs.COMMUNITY],
|
||||
created_at=datetime.now(),
|
||||
usertype=roles.ADMIN.value,
|
||||
usertype=roles.ADMIN,
|
||||
)
|
||||
|
||||
newUser = User(
|
||||
|
@ -50,9 +50,9 @@ newUser = User(
|
|||
email="new@compass.com",
|
||||
experience=1,
|
||||
group="volunteer",
|
||||
programtype=[programs.ECONOMIC.value],
|
||||
programtype=[programs.ECONOMIC],
|
||||
created_at=datetime.now(),
|
||||
usertype=roles.VOLUNTEER.value
|
||||
usertype=roles.VOLUNTEER
|
||||
)
|
||||
|
||||
users = [volunteer, employee, admin]
|
||||
|
|
Loading…
Reference in New Issue
Block a user