Я хочу написать тестовые сценарии для mock filter () для сеанса sqlalchemy .using, чтобы запустить запрос объекта. В файле конфигурации создается сеанс. Я могу имитировать session.query (FleetEquipment), ноКак я могу издеваться над параметром фильтра, а также.
def get_fleet_equipment_from_thirdparty(self, unit_address, thirdparty_company_id):
result = session.query(FleetEquipment).filter(
FleetEquipment.ThirdPartyUnitNumber == unit_address
and FleetEquipment.ThirdPartyCompanyID == thirdparty_company_id)[:]
способ, которым я издеваюсь над параметром session.query:
@patch("dao.db_config.session.query",fleetEquipmentMock)
, и вот как я создаю этот ложный объект
fleetEquipment = FleetEquipment(1,123,3,1,1,1)
fleetEquipmentMock = Mock()
fleetEquipmentMock.return_value = fleetEquipment
как я могу достичь того же.
, если я пытаюсь смоделировать все вместе, как
@patch("dao.db_config.session.query.filter",fleetEquipmentMock)
, наблюдается следующее исключение:
AttributeError: <bound method Session.query of <sqlalchemy.orm.session.Session object at 0x00000239F059E198>> does not have the attribute 'filter'