summaryrefslogtreecommitdiff
path: root/cpp/test/IceStorm/federation/test.py
blob: b3754f2f8baada468c0681bf3a37512f4c7f6978 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# -*- coding: utf-8 -*-
# **********************************************************************
#
# Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
#
# This copy of Ice is licensed to you under the terms described in the
# ICE_LICENSE file included in this distribution.
#
# **********************************************************************

class IceStormFederationTestCase(IceStormTestCase):

    def setupClientSide(self, current):
        self.runadmin(current, "create fed1 fed2 fed3; link fed1 fed2 10; link fed2 fed3 5")

    def runClientSide(self, current):
        current.write("testing oneway subscribers...")
        ClientServerTestCase(client=Publisher(), server=Subscriber()).run(current)
        current.writeln("ok")

        current.write("testing batch subscribers...")
        ClientServerTestCase(client=Publisher(), server=Subscriber(args=["-b"])).run(current)
        current.writeln("ok")

    def teardownClientSide(self, current, success):
        self.runadmin(current, "destroy fed1 fed2 fed3")
        self.shutdown(current)

# Override ReplicatedPublishEndpoints property to empty for testing without replicated publisher
props = {'IceStorm.ReplicatedPublishEndpoints' : ''}

TestSuite(__file__, [
    IceStormFederationTestCase("persistent", icestorm=IceStorm()),
    IceStormFederationTestCase("transient", icestorm=IceStorm(transient=True)),
    IceStormFederationTestCase("replicated with non-replicated publisher",
                               icestorm=[IceStorm(replica=i, nreplicas=3, props=props) for i in range(0,3)]),
    IceStormFederationTestCase("replicated with replicated publisher",
                               icestorm=[IceStorm(replica=i, nreplicas=3) for i in range(0,3)]),
], multihost=False)