def select_user(cls, user_id: int = None, name: str = None) -> List[Users]:
     """
     Select data in user entity by id and/or name
     :param - user_id: Id of the registry
            - name: User name
     :return - List with Users selected
     """
     with DBConnectionHandler() as db_connection:
         query_data = None
         try:
             if user_id and not name:
                 data = (db_connection.session.query(UsersModel).filter_by(
                     id=user_id).one())
                 query_data = [data]
             elif not user_id and name:
                 data = (db_connection.session.query(UsersModel).filter_by(
                     name=name).one())
                 query_data = [data]
             elif user_id and name:
                 data = (db_connection.session.query(UsersModel).filter_by(
                     id=user_id, name=name).one())
                 query_data = [data]
             return query_data
         except NoResultFound:
             return []
         except:
             db_connection.session.rollback()
             raise
         finally:
             db_connection.session.close()
    def select_user(cls, user_id: int = None, name: str = None) -> List[Users]:
        """Select data in user entity
        Return: List User
        """
        with DBConnectionHandler() as db_conn:
            try:
                query_data = None

                if user_id and not name:
                    data = db_conn.session.query(UsersModel).filter_by(
                        id=user_id).one()
                    query_data = [data]

                elif not user_id and name:
                    data = db_conn.session.query(UsersModel).filter_by(
                        name=name).one()
                    query_data = [data]

                elif user_id and name:
                    data = (db_conn.session.query(UsersModel).filter_by(
                        id=user_id, name=name).one())
                    query_data = [data]

                return query_data

            except:
                db_conn.session.rollback()
                raise

            finally:
                db_conn.session.close()
    def insert_pet(cls, name: str, specie: str, age: int, user_id: int) -> Pets:
        """
        Insert data in PetsEntity entity
        :param - name: name of the pet
               - specie: Enum with species acepted
               - age: pet age
               - user_id: id of the owner (FK)
        :return - tuple with new pet inserted
        """

        with DBConnectionHandler() as db_connection:
            try:
                new_pet = PetsModel(name=name, specie=specie, age=age, user_id=user_id)
                db_connection.session.add(new_pet)
                db_connection.session.commit()

                return Pets(
                    id=new_pet.id,
                    name=new_pet.name,
                    specie=new_pet.specie.value,
                    age=new_pet.age,
                    user_id=new_pet.user_id,
                )

            except:
                db_connection.session.rollback()
                raise
            finally:
                db_connection.session.close()

        return None
Пример #4
0
    def select_pet(cls, pet_id: int = None, user_id: int = None) -> List[Pets]:
        """
        Select data in PetsEntity entity by id and/or user_id
        :param - pet_id: Id of the pet registry
               - user_ud: Id of the owner
        :return - List with Pets selected
        """

        try:

            query_data = None

            if pet_id and not user_id:

                with DBConnectionHandler() as db_connection:
                    data = (db_connection.session.query(PetsModel).filter_by(
                        id=pet_id).one())
                    query_data = [data]

            elif not pet_id and user_id:

                with DBConnectionHandler() as db_connection:
                    data = (db_connection.session.query(PetsModel).filter_by(
                        user_id=user_id).all())
                    query_data = data

            elif pet_id and user_id:

                with DBConnectionHandler() as db_connection:
                    data = (db_connection.session.query(PetsModel).filter_by(
                        id=pet_id, user_id=user_id).one())
                    query_data = [data]

            return query_data

        except NoResultFound:
            return []
        except:
            db_connection.session.rollback()
            raise
        finally:
            db_connection.session.close()

        return None
Пример #5
0
    def insert_use(cls):

        with DBConnectionHandler() as db_connection:
            try:
                new_user = Users(name="Rose", password="******")
                db_connection.session.add(new_user)
                db_connection.session.commit()
            except:
                db_connection.session.rollback()
                raise
            finally:
                db_connection.session.close()
Пример #6
0
    def insert_user(cls):
        """
        Something
        """

        with DBConnectionHandler() as db_connection:
            try:
                new_user = Users(name="Programador", password="******")
                db_connection.session.add(new_user)
                db_connection.session.commit()
            except:
                db_connection.session.rollback()
                raise
            finally:
                db_connection.session.close()
Пример #7
0
 def insert_pet(cls, name: str, specie: str, age: int, user_id: int) -> Pets:
     """Insert data Pet Entiyy"""
     with DBConnectionHandler() as db_conn:
         try:
             new_pet = PetsModel(name=name, specie=specie, age=age, user_id=user_id)
             db_conn.session.add(new_pet)
             db_conn.session.commit()
             print(new_pet)
             return Pets(
                 id=new_pet.id,
                 name=new_pet.name,
                 specie=new_pet.specie.value,
                 age=new_pet.age,
                 user_id=new_pet.user_id,
             )
         except:
             db_conn.session.rollback()
             raise
         finally:
             db_conn.session.close()
    def insert_user(cls, name: str, password: str) -> Users:
        """insert data in user entity
        :param - name: person name
               - password: user pasword
        :return - Users tuple with new user inserted
        """

        with DBConnectionHandler() as db_connection:
            try:
                new_user = UsersModel(name=name, password=password)
                db_connection.session.add(new_user)
                db_connection.session.commit()
                return Users(id=new_user.id,
                             name=new_user.name,
                             password=new_user.password)
            except:
                db_connection.session.rollback()
                raise
            finally:
                db_connection.session.close()
        return None
    def insert_user(cls, name: str, password: str) -> Users:
        """Insert data in user tables
        :return - tuple with new user
        :params - name, password

        """
        with DBConnectionHandler() as db_conn:
            try:
                new_user = UsersModel(name=name, password=password)
                db_conn.session.add(new_user)
                db_conn.session.commit()

                return Users(id=new_user.id,
                             name=new_user.name,
                             password=new_user.password)

            except:
                db_conn.session.rollback()
                raise
            finally:
                db_conn.session.close()
Пример #10
0
    def select_pet(
        cls,
        pet_id: int = None,
        user_id: int = None,
    ) -> List[Pets]:
        """Select pet entity
        :param - pet_id - Id of registered pet
        :param - user_id id of registered pet.
        """
        with DBConnectionHandler() as db_conn:
            try:
                query_data = None

                if pet_id and not user_id:
                    data = db_conn.session.query(PetsModel).filter_by(id=pet_id).one()
                    query_data = [data]
                elif not pet_id and user_id:
                    data = (
                        db_conn.session.query(PetsModel)
                        .filter_by(user_id=user_id)
                        .all()
                    )
                    query_data = data
                elif pet_id and user_id:
                    data = (
                        db_conn.session.query(PetsModel)
                        .filter_by(id=pet_id, user_id=user_id)
                        .one()
                    )
                    query_data = [data]

                return query_data

            except:
                db_conn.session.rollback()
                raise
            finally:
                db_conn.session.close()
from faker import Faker
from src.infra.entities import Users as UsersModel
from src.infra.config import DBConnectionHandler
from .user_repository import UserRepository

faker = Faker()
user_repository = UserRepository()
db_connection_handler = DBConnectionHandler()


def test_insert_user():
    """ Should insert user """

    name = faker.name()
    password = faker.word()
    engine = db_connection_handler.get_engine()

    # SQL Commands
    new_user = user_repository.insert_user(name, password)
    query_user = engine.execute("SELECT * FROM users WHERE id='{}';".format(
        new_user.id)).fetchone()

    engine.execute("DELETE FROM users WHERE id='{}';".format(new_user.id))

    assert new_user.id == query_user.id
    assert new_user.name == query_user.name
    assert new_user.password == query_user.password


def test_select_user():
    """ Should select a user in Users table and compare it """
Пример #12
0
from faker import Faker
from src.infra.config import DBConnectionHandler
from src.infra.entities import Users as UsersModel
from .users_repository import UsersRepository

faker = Faker()
user_repository = UsersRepository()
db_conn = DBConnectionHandler()


def test_insert_user():
    """Should insert User"""
    name = faker.name()
    password = faker.word()
    engine = db_conn.get_engine()

    new_user = user_repository.insert_user(name, password)
    query_user = engine.execute("SELECT * FROM users WHERE id='{}';".format(
        new_user.id)).fetchone()
    engine.execute("DELETE FROM users WHERE id='{}';".format(new_user.id))

    assert new_user.id == query_user.id
    assert new_user.name == query_user.name
    assert new_user.password == query_user.password


def test_select_user():
    """Should select a user with name and id passed"""
    user_id = faker.random_number(digits=5)
    name = faker.name()
    password = faker.word()