Guest User

Untitled

a guest
Mar 19th, 2018
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.39 KB | None | 0 0
  1. import pytest
  2. import factory
  3. from sqlalchemy import create_engine, Column, String, BigInteger
  4. from sqlalchemy.ext.declarative import declarative_base
  5. from sqlalchemy.orm import sessionmaker
  6.  
  7. engine = create_engine('DB_CONNECTION_URL')
  8.  
  9. Base = declarative_base(bind=engine)
  10. Session = sessionmaker()
  11.  
  12. class UserModel(Base):
  13. __tablename__ = 'account'
  14.  
  15. id = Column(BigInteger, primary_key=True)
  16. name = Column(String, nullable=False)
  17. email = Column(String, nullable=False)
  18.  
  19. class UserFactory(factory.alchemy.SQLAlchemyModelFactory):
  20. id = factory.Sequence(lambda n: '%s' % n)
  21. name = factory.Faker('name')
  22. email = factory.Faker('email')
  23.  
  24. class Meta:
  25. model = UserModel
  26.  
  27. @pytest.fixture(scope='module')
  28. def connection():
  29. connection = engine.connect()
  30. yield connection
  31. connection.close()
  32.  
  33. @pytest.fixture(scope='function')
  34. def session(connection):
  35. transaction = connection.begin()
  36. session = Session(bind=connection)
  37. UserFactory._meta.sqlalchemy_session = session
  38. yield session
  39. session.close()
  40. transaction.rollback()
  41.  
  42. def my_func_to_delete_user(session, user_id):
  43. session.query(UserModel).filter(UserModel.id == user_id).delete()
  44.  
  45. def test_case(session):
  46. user = UserFactory.create()
  47. assert session.query(UserModel).one()
  48.  
  49. my_func_to_delete_user(session, user.id)
  50.  
  51. result = session.query(UserModel).one_or_none()
  52. assert result is None
Add Comment
Please, Sign In to add comment