У меня есть базовый класс TestRunner, который в основном соответствует их примеру:
import unittest
from sqlalchemy import create_engine
from sqlalchemy.event import listens_for
from sqlalchemy.orm import scoped_session
from sqlalchemy.orm import sessionmaker
from compliance.takedowns.data.models import Base
engine = create_engine('sqlite:///:memory:')
SessionFactory = scoped_session(sessionmaker(bind=engine))
Base.metadata.create_all(engine) # Initial schema setup
class TakedownsDBInternalTestRunner(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.engine = engine
def setUp(self):
self.connection = self.engine.connect()
self.trans = self.connection.begin()
self.session = SessionFactory
self.nested = self.connection.begin_nested()
@listens_for(self.session, "after_transaction_end")
def end_savepoint(session, transaction):
assert self.nested is not None
if not self.nested.is_active:
self.nested = self.connection.begin_nested()
def tearDown(self):
self.session.close()
self.trans.rollback()
self.connection.close()
Но я заметил, что между тестами возникают ошибки ссылочной целостности?
class RequestTests(TakedownsDBInternalTestRunner):
def test_one(self):
request = create_base_request()
self.session.add(request)
self.session.commit()
result = self.session.query(Request).all()
self.assertEqual(len(result), 1)
def test_two(self):
request = create_base_request()
self.session.add(request)
self.session.commit()
result = self.session.query(Request).all()
self.assertEqual(len(result), 2)
Вот какую ошибку я получаю:
========================================================================================================= short test summary info =========================================================================================================
FAILED test_request.py::RequestTests::test_two - AssertionError: 1 != 2
FAILED test_request.py::RequestTests::test_one - AssertionError: 2 != 1
Подробнее здесь: https://stackoverflow.com/questions/791 ... -each-test
Сеанс базы данных SQLAlchemy не сбрасывается после каждого теста ⇐ Python
Программы на Python
-
Anonymous
1731951868
Anonymous
У меня есть базовый класс TestRunner, который в основном соответствует их примеру:
import unittest
from sqlalchemy import create_engine
from sqlalchemy.event import listens_for
from sqlalchemy.orm import scoped_session
from sqlalchemy.orm import sessionmaker
from compliance.takedowns.data.models import Base
engine = create_engine('sqlite:///:memory:')
SessionFactory = scoped_session(sessionmaker(bind=engine))
Base.metadata.create_all(engine) # Initial schema setup
class TakedownsDBInternalTestRunner(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.engine = engine
def setUp(self):
self.connection = self.engine.connect()
self.trans = self.connection.begin()
self.session = SessionFactory
self.nested = self.connection.begin_nested()
@listens_for(self.session, "after_transaction_end")
def end_savepoint(session, transaction):
assert self.nested is not None
if not self.nested.is_active:
self.nested = self.connection.begin_nested()
def tearDown(self):
self.session.close()
self.trans.rollback()
self.connection.close()
Но я заметил, что между тестами возникают ошибки ссылочной целостности?
class RequestTests(TakedownsDBInternalTestRunner):
def test_one(self):
request = create_base_request()
self.session.add(request)
self.session.commit()
result = self.session.query(Request).all()
self.assertEqual(len(result), 1)
def test_two(self):
request = create_base_request()
self.session.add(request)
self.session.commit()
result = self.session.query(Request).all()
self.assertEqual(len(result), 2)
Вот какую ошибку я получаю:
========================================================================================================= short test summary info =========================================================================================================
FAILED test_request.py::RequestTests::test_two - AssertionError: 1 != 2
FAILED test_request.py::RequestTests::test_one - AssertionError: 2 != 1
Подробнее здесь: [url]https://stackoverflow.com/questions/79198575/sqlalchemy-database-session-is-not-reset-after-each-test[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия