Найти - Пользователи
Полная версия: Несоответствие вывода метода класса.
Начало » Python для экспертов » Несоответствие вывода метода класса.
1
grok
Доброго времени суток!
Есть некий метод на вход которому подается 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>
P.P.S. ОС Linux Ubuntu 11.04, Python 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53)
dehun
может быть логирование в функциях формирования ответа помогут решить проблему? есть там какойнить вербос?

вариантов вобше немного - вызовы из юнит теста и из реального кода отличаются или отличается окружение.
проверьте идентичность вызовов. попробуйте из шела повторить цепочку вызовов. проверте порядок импортов - может быть он имеет значение.
проверте окружение - есть ли манки патчинг какой? база данных одна и тажа используется для теста и программы?
grok
dehun
может быть логирование в функциях формирования ответа помогут решить проблему? есть
проверьте идентичность вызовов. попробуйте из шела повторить цепочку вызовов. проверте порядок импортов - может быть он имеет значение.
Вот, вот.. уже проверил.. Оказывается в исполняемом файле аналогичная ситуация была бы, если бы я второй раз этот метод вызвал не “удаляя” экземпляр данного класса. В общем поведение экземпляра меняется в ходе метода и, соответственно, при повторном вызове данного метода он отрабатывает некорректно.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB