# HG changeset patch # User Sylvain Thénault # Date 1253701079 -7200 # Node ID 5cd27d2cc64f49986ddd39e5f258df29d521a0e5 # Parent 368c68ffb99e5d8dbed77625f653f76758a045e6 update imports, rename test module diff -r 368c68ffb99e -r 5cd27d2cc64f server/test/unittest_hook.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/server/test/unittest_hook.py Wed Sep 23 12:17:59 2009 +0200 @@ -0,0 +1,63 @@ +# -*- coding: utf-8 -*- +"""unit/functional tests for cubicweb.server.hook + +:organization: Logilab +:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr +:license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses +""" + +from logilab.common.testlib import unittest_main + +from cubicweb.devtools.testlib import CubicWebTC +from cubicweb.server.hook import LateOperation, Operation, SingleLastOperation +from cubicweb.hooks import integrity, syncschema + + +def clean_session_ops(func): + def wrapper(self, *args, **kwargs): + try: + return func(self, *args, **kwargs) + finally: + self.session.pending_operations[:] = [] + return wrapper + +class HookHelpersTC(CubicWebTC): + + def setUp(self): + CubicWebTC.setUp(self) + self.hm = self.repo.hm + + @clean_session_ops + def test_late_operation(self): + session = self.session + l1 = LateOperation(session) + l2 = LateOperation(session) + l3 = Operation(session) + self.assertEquals(session.pending_operations, [l3, l1, l2]) + + @clean_session_ops + def test_single_last_operation(self): + session = self.session + l0 = SingleLastOperation(session) + l1 = LateOperation(session) + l2 = LateOperation(session) + l3 = Operation(session) + self.assertEquals(session.pending_operations, [l3, l1, l2, l0]) + l4 = SingleLastOperation(session) + self.assertEquals(session.pending_operations, [l3, l1, l2, l4]) + + @clean_session_ops + def test_global_operation_order(self): + session = self.session + op1 = integrity._DelayedDeleteOp(session) + op2 = syncschema.MemSchemaRDefDel(session) + # equivalent operation generated by op2 but replace it here by op3 so we + # can check the result... + op3 = syncschema.MemSchemaNotifyChanges(session) + op4 = integrity._DelayedDeleteOp(session) + op5 = integrity._CheckORelationOp(session) + self.assertEquals(session.pending_operations, [op1, op2, op4, op5, op3]) + +if __name__ == '__main__': + unittest_main() diff -r 368c68ffb99e -r 5cd27d2cc64f server/test/unittest_hookhelper.py --- a/server/test/unittest_hookhelper.py Wed Sep 23 11:22:19 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,64 +0,0 @@ -# -*- coding: utf-8 -*- -"""unit/functional tests for cubicweb.server.hookhelper - -:organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. -:contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr -:license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses -""" - -from logilab.common.testlib import unittest_main -from cubicweb.devtools.testlib import CubicWebTC - -from cubicweb.server.pool import LateOperation, Operation, SingleLastOperation -from cubicweb.server.hookhelper import * -from cubicweb.server import hooks, schemahooks - - -def clean_session_ops(func): - def wrapper(self, *args, **kwargs): - try: - return func(self, *args, **kwargs) - finally: - self.session.pending_operations[:] = [] - return wrapper - -class HookHelpersTC(CubicWebTC): - - def setUp(self): - CubicWebTC.setUp(self) - self.hm = self.repo.hm - - @clean_session_ops - def test_late_operation(self): - session = self.session - l1 = LateOperation(session) - l2 = LateOperation(session) - l3 = Operation(session) - self.assertEquals(session.pending_operations, [l3, l1, l2]) - - @clean_session_ops - def test_single_last_operation(self): - session = self.session - l0 = SingleLastOperation(session) - l1 = LateOperation(session) - l2 = LateOperation(session) - l3 = Operation(session) - self.assertEquals(session.pending_operations, [l3, l1, l2, l0]) - l4 = SingleLastOperation(session) - self.assertEquals(session.pending_operations, [l3, l1, l2, l4]) - - @clean_session_ops - def test_global_operation_order(self): - session = self.session - op1 = hooks.DelayedDeleteOp(session) - op2 = schemahooks.MemSchemaRDefDel(session) - # equivalent operation generated by op2 but replace it here by op3 so we - # can check the result... - op3 = schemahooks.MemSchemaNotifyChanges(session) - op4 = hooks.DelayedDeleteOp(session) - op5 = hooks.CheckORelationOp(session) - self.assertEquals(session.pending_operations, [op1, op2, op4, op5, op3]) - -if __name__ == '__main__': - unittest_main()