2013-04-12 3 views
0

Почему внешний цикл выполняет только последнюю итерацию?Почему моя петля не повторяется?

class LanguageSpecificTest(unittest.TestCase): 

    # Body omitted 

for style in [ "inline", "inline_scripted", 
       "external", "external_scripted", 
       "internal", "internal_scripted", 
      ]: 
    print style 

    for language, text_id, direction, text, check_text in (
       ("french", "reply_1", "с французского", "жизнь", "В большом дворце, в Ферраре, в один зимний вечер"), 
      ): 

     test_name = 'test_translation_test_phrases_for_%s_pages' % language 
     def my_test_generator(language, text_id, check_text): 
      def ubergenerator(self): 
       ##### 
      return ubergenerator 
     t = my_test_generator(language, text_id, check_text) 
     t.__name__ = test_name 
     setattr(LanguageSpecificTest, test_name, t) 

И когда я запускаю тесты печатает:

inline 
inline_scripted 
external 
external_scripted 
internal 
internal_scripted 
http://127.0.0.1:5000/translate?lang=french&style=internal_scripted 

и проходит только через одно испытание, а не шесть. Почему я не вижу

http://127.0.0.1:5000/translate?lang=french&style=inline 
http://127.0.0.1:5000/translate?lang=french&style=inline_scripted 
http://127.0.0.1:5000/translate?lang=french&style=external 
http://127.0.0.1:5000/translate?lang=french&style=external_scripted 
http://127.0.0.1:5000/translate?lang=french&style=internal 
http://127.0.0.1:5000/translate?lang=french&style=internal_scripted 

О, боже, спаси свой вечер в пятницу.

+0

Почему бы вам не показать нам что-то, что мы могли бы запустить? – NPE

+0

Вы пробовали пройти через отладчик? – Alkini

ответ

3
test_name = 'test_translation_test_phrases_for_%s_pages' % language 
    setattr(LanguageSpecificTest, test_name, t) 

Вы используете только language в test_name, так что вы перезаписать тот же атрибут, когда вы идете к различным style с.

+0

Вы правы. Также мне нужно передать 'style' в качестве параметра в' my_test_generator'. – Nakilon

Смежные вопросы