Python pdb изменить переменную путаница - PullRequest
1 голос
/ 27 декабря 2010

Во время отладки unittest моего веб-приложения Python с использованием SQLAlchemy постоянный пользовательский объект uber опустил мою челюсть -

> myapp/views/signup.py(73)signup_view()
-> user = model.User(user_name=user_name, email=email, password=password)
(Pdb) n
(Pdb) user
<pweb.models.User object at 0xbbb20ec>
(Pdb) user = None
(Pdb) user
<pweb.models.User object at 0xbbb20ec>     <!-- !!!??? -->

(Pdb) user2 = model.User(user_name=user_name, email=email, password=password)
(Pdb) user2
<pweb.models.User object at 0xbbb2f0c>
(Pdb) user2 = None
(Pdb) user2
(Pdb) 

Подобного поведения нельзя наблюдать в автономном тривиальном сценарии -

(Pdb) l
  1   if __name__ == '__main__':
  2       user = 1
  3       import pdb; pdb.set_trace()
  4  ->     pass
[EOF]
(Pdb) user
1
(Pdb) user = 2
(Pdb) user
2

Каким должно быть обоснование в первом примере? Может ли это быть связано с серединой транзакции, которая стоит за Python unittest (использующий SQLAlchemy) не записывает / обновляет базу данных? ?

...