Форум сайта python.su
Доброго времени суток!
Есть некий метод на вход которому подается XML описывающий запрос к БД. На выходе он формирует XML-результат ответа. При его тестировании при помощи unittest и стандартное его использование в исполняющемся файле наблюдается их несоответствие. (в юните данный метод отрабатывает не корректно).
С чем это может быть связано?
P.S. В данном методе сплошь и рядом встречаются рекурсивные методы.
Результат юнита (вывод неверен, т.к. не хватает еще одного внутреннего <object_list>):
<?xml version='1.0' encoding='UTF-8'?> <object_list count="2"> <object name="commission_compl_tab" primary_key="47"> <field name="operator_id">5</field> <field name="date_time_mod">2012-03-27 17:26:43.421000+07:00</field> </object> <object name="commission_compl_tab" primary_key="61"> <field name="operator_id">7</field> <field name="date_time_mod">2012-04-19 16:53:41.790000+07:00</field> </object> </object_list>
<?xml version='1.0' encoding='UTF-8'?> <object_list count="2"> <object name="commission_compl_tab" primary_key="47"> <field name="operator_id">5</field> <field name="date_time_mod">2012-03-27 17:26:43.421000+07:00</field> <object_list count="3"> <object name="complaints_tab" primary_key="526"> <field name="commission_id">47</field> <field name="ot">Алексеевна</field> </object> <object name="complaints_tab" primary_key="527"> <field name="commission_id">47</field> <field name="ot">Ивановна</field> </object> <object name="complaints_tab" primary_key="528"> <field name="commission_id">47</field> <field name="ot">Александровна</field> </object> </object_list> </object> <object name="commission_compl_tab" primary_key="61"> <field name="operator_id">7</field> <field name="date_time_mod">2012-04-19 16:53:41.790000+07:00</field> </object> </object_list>
Отредактировано grok (Май 16, 2012 12:09:03)
Офлайн
может быть логирование в функциях формирования ответа помогут решить проблему? есть там какойнить вербос?
вариантов вобше немного - вызовы из юнит теста и из реального кода отличаются или отличается окружение.
проверьте идентичность вызовов. попробуйте из шела повторить цепочку вызовов. проверте порядок импортов - может быть он имеет значение.
проверте окружение - есть ли манки патчинг какой? база данных одна и тажа используется для теста и программы?
Офлайн
dehunВот, вот.. уже проверил.. Оказывается в исполняемом файле аналогичная ситуация была бы, если бы я второй раз этот метод вызвал не “удаляя” экземпляр данного класса. В общем поведение экземпляра меняется в ходе метода и, соответственно, при повторном вызове данного метода он отрабатывает некорректно.
может быть логирование в функциях формирования ответа помогут решить проблему? есть
проверьте идентичность вызовов. попробуйте из шела повторить цепочку вызовов. проверте порядок импортов - может быть он имеет значение.
Отредактировано grok (Май 16, 2012 13:19:50)
Офлайн