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.

Reply via email to