Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pytest
- import factory
- from sqlalchemy import create_engine, Column, String, BigInteger
- from sqlalchemy.ext.declarative import declarative_base
- from sqlalchemy.orm import sessionmaker
- engine = create_engine('DB_CONNECTION_URL')
- Base = declarative_base(bind=engine)
- Session = sessionmaker()
- class UserModel(Base):
- __tablename__ = 'account'
- id = Column(BigInteger, primary_key=True)
- name = Column(String, nullable=False)
- email = Column(String, nullable=False)
- class UserFactory(factory.alchemy.SQLAlchemyModelFactory):
- id = factory.Sequence(lambda n: '%s' % n)
- name = factory.Faker('name')
- email = factory.Faker('email')
- class Meta:
- model = UserModel
- @pytest.fixture(scope='module')
- def connection():
- connection = engine.connect()
- yield connection
- connection.close()
- @pytest.fixture(scope='function')
- def session(connection):
- transaction = connection.begin()
- session = Session(bind=connection)
- UserFactory._meta.sqlalchemy_session = session
- yield session
- session.close()
- transaction.rollback()
- def my_func_to_delete_user(session, user_id):
- session.query(UserModel).filter(UserModel.id == user_id).delete()
- def test_case(session):
- user = UserFactory.create()
- assert session.query(UserModel).one()
- my_func_to_delete_user(session, user.id)
- result = session.query(UserModel).one_or_none()
- assert result is None
Add Comment
Please, Sign In to add comment