diff options
Diffstat (limited to 'py/test')
-rw-r--r-- | py/test/Ice/operations/Twoways.py | 44 | ||||
-rw-r--r-- | py/test/Ice/operations/TwowaysAMI.py | 51 |
2 files changed, 94 insertions, 1 deletions
diff --git a/py/test/Ice/operations/Twoways.py b/py/test/Ice/operations/Twoways.py index dcf925df4dc..3417182b17e 100644 --- a/py/test/Ice/operations/Twoways.py +++ b/py/test/Ice/operations/Twoways.py @@ -149,7 +149,6 @@ def twoways(communicator, initData, p): # # opByteS (array) # - print "array", bsi1 = array.array('B') bsi1.fromlist([0x01, 0x11, 0x12, 0x22]) bsi2 = array.array('B') @@ -595,3 +594,46 @@ def twoways(communicator, initData, p): test(c5.opContext()['a'] == 'd') communicator.setDefaultContext({}) + + # + # Test implicit context propagation + # + impls = ( 'Shared', 'SharedWithoutLocking', 'PerThread' ) + for i in impls: + initData = Ice.InitializationData() + initData.properties = Ice.createProperties() + initData.properties.setProperty('Ice.ImplicitContext', i) + ic = Ice.initialize(data=initData) + + ctx = {'one': 'ONE', 'two': 'TWO', 'three': 'THREE'} + + p = Test.MyClassPrx.uncheckedCast(ic.stringToProxy("test:default -p 12010 -t 10000")) + + ic.getImplicitContext().setContext(ctx) + test(ic.getImplicitContext().getContext() == ctx) + test(p.opContext() == ctx) + + ic.getImplicitContext().set('zero', 'ZERO') + test(ic.getImplicitContext().get('zero') == 'ZERO') + test(ic.getImplicitContext().getWithDefault('foobar', 'foo') == 'foo') + ic.getImplicitContext().remove('two') + test(ic.getImplicitContext().getWithDefault('two', 'bar') == 'bar') + ctx = ic.getImplicitContext().getContext() + test(p.opContext() == ctx) + + prxContext = {'one': 'UN', 'four': 'QUATRE'} + + combined = ctx + combined.update(prxContext) + test(combined['one'] == 'UN') + + p = Test.MyClassPrx.uncheckedCast(p.ice_context(prxContext)) + ic.getImplicitContext().setContext({}) + test(p.opContext() == prxContext) + + ic.getImplicitContext().setContext(ctx) + test(p.opContext() == combined) + + ic.destroy() + + diff --git a/py/test/Ice/operations/TwowaysAMI.py b/py/test/Ice/operations/TwowaysAMI.py index 4788a03a232..a6ac6db5999 100644 --- a/py/test/Ice/operations/TwowaysAMI.py +++ b/py/test/Ice/operations/TwowaysAMI.py @@ -855,8 +855,59 @@ def twowaysAMI(communicator, initData, p): derived.opDerived_async(cb) test(cb.check()) + # + # Test implicit context propagation + # + impls = ( 'Shared', 'SharedWithoutLocking', 'PerThread' ) + for i in impls: + initData = Ice.InitializationData() + initData.properties = Ice.createProperties() + initData.properties.setProperty('Ice.ImplicitContext', i) + ic = Ice.initialize(data=initData) + + ctx = {'one': 'ONE', 'two': 'TWO', 'three': 'THREE'} + + p = Test.MyClassPrx.uncheckedCast(ic.stringToProxy("test:default -p 12010 -t 10000")) + + ic.getImplicitContext().setContext(ctx) + test(ic.getImplicitContext().getContext() == ctx) + + cb = AMI_MyClass_opContextEqualI(ctx) + p.opContext_async(cb) + test(cb.check()) + + ic.getImplicitContext().set('zero', 'ZERO') + test(ic.getImplicitContext().get('zero') == 'ZERO') + test(ic.getImplicitContext().getWithDefault('foobar', 'foo') == 'foo') + ic.getImplicitContext().remove('two') + test(ic.getImplicitContext().getWithDefault('two', 'bar') == 'bar') + ctx = ic.getImplicitContext().getContext() + + cb = AMI_MyClass_opContextEqualI(ctx) + p.opContext_async(cb) + test(cb.check()) + + prxContext = {'one': 'UN', 'four': 'QUATRE'} + + combined = ctx + combined.update(prxContext) + test(combined['one'] == 'UN') + + p = Test.MyClassPrx.uncheckedCast(p.ice_context(prxContext)) + ic.getImplicitContext().setContext({}) + + cb = AMI_MyClass_opContextEqualI(prxContext) + p.opContext_async(cb) + test(cb.check()) + + ic.getImplicitContext().setContext(ctx) + cb = AMI_MyClass_opContextEqualI(combined) + p.opContext_async(cb) + test(cb.check()) + ic.destroy() + |