summaryrefslogtreecommitdiff
path: root/py/test/Ice/operations/Twoways.py
diff options
context:
space:
mode:
Diffstat (limited to 'py/test/Ice/operations/Twoways.py')
-rw-r--r--py/test/Ice/operations/Twoways.py44
1 files changed, 43 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()
+
+