On 24.02.19 08:48, Gerhard Schmidt wrote:> Hi, > > I'm writing a pyramid app using traversal and ZODB. Right now i writing > unit tests and try to test if the _p_changed attribute is set after a > method that changes a persistent object. > > The problem is that _p_changed is always False when running in the > testrunner. Even after I do obj._p_changed = True obj._p_changed is > still False. > > In running environment everything works fine. But I often forget the > self._p_changed = True after modifying lists or dicts inside a > persistent object. So i really like to test if it's get set. > > Is there a way to test if a persistent object would be saved when the > transaction is committed.
_p_changed is meant as a trigger, but it is not meant to read a status. Triggering _p_changed joins the object to a transaction manager which then on commit saves the object. What your're looking for is probably _p_status which is "saved" or "unsaved". For dicts/lists Thierry is right, better use PersistentList/PersistentDict in order to not to have to trigger _p_changed manually. hth Jens -- Klein & Partner KG, member of BlueDynamics Alliance -- You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to pylons-discuss+unsubscr...@googlegroups.com. To post to this group, send email to pylons-discuss@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/pylons-discuss/q50dqk%2460r4%241%40blaine.gmane.org. For more options, visit https://groups.google.com/d/optout.