Во время отладки 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) не записывает / обновляет базу данных? ?