File: TestHelper.py

package info (click to toggle)
zeroc-ice 3.7.10-3.1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 75,696 kB
  • sloc: cpp: 356,894; java: 226,081; cs: 98,312; javascript: 35,027; python: 28,716; objc: 27,050; php: 7,526; ruby: 7,190; yacc: 2,949; ansic: 2,469; xml: 1,589; lex: 1,241; makefile: 472; sh: 52
file content (102 lines) | stat: -rw-r--r-- 2,803 bytes parent folder | download | duplicates (4)
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#
# Copyright (c) ZeroC, Inc. All rights reserved.
#

import Ice
import sys
import os
import traceback
import importlib


class TestHelper:

    def __init__(self):
        self._communicator = None

    def getTestEndpoint(self, properties=None, num=0, protocol=""):

        if properties is None:
            properties = self._communicator.getProperties()

        if protocol == "":
            protocol = properties.getPropertyWithDefault("Ice.Default.Protocol", "default")

        port = properties.getPropertyAsIntWithDefault("Test.BasePort", 12010) + num

        return "{0} -p {1}".format(protocol, port)

    def getTestHost(self, properties=None):

        if properties is None:
            properties = self._communicator.getProperties()

        return properties.getPropertyWithDefaul("Ice.Default.Host", "127.0.0.1")

    def getTestProtocol(self, properties=None):

        if properties is None:
            properties = self._communicator.getProperties()

        return properties.getPropertyWithDefault("Ice.Default.Protocol", "tcp")

    def getTestPort(self, properties=None, num=0):

        if properties is None:
            properties = self._communicator.getProperties()

        return properties.getPropertyAsIntWithDefault("Test.BasePort", 12010) + num

    def createTestProperties(self, args=[]):

        properties = Ice.createProperties(args)
        args = properties.parseCommandLineOptions("Test", args)
        return properties

    def initialize(self, initData=None, properties=None, args=[]):

        if initData is None:
            initData = Ice.InitializationData()
            if properties:
                initData.properties = properties
            else:
                initData.properties = self.createTestProperties(args)

        communicator = Ice.initialize(initData)

        if self._communicator is None:
            self._communicator = communicator

        return communicator

    def communicator(self):
        return self._communicator

    def shutdown(self):
        if self._communicator:
            self._communicator.shutdown()

    @classmethod
    def loadSlice(self, args):
        sliceDir = Ice.getSliceDir()
        if not sliceDir:
            print(sys.argv[0] + ': Slice directory not found.')
            sys.exit(1)
        Ice.loadSlice("'-I{0}' {1}".format(sliceDir, args))

    @classmethod
    def run(self):
        try:
            moduleName = os.path.splitext(sys.argv[1])[0]
            module = importlib.import_module(moduleName)
            cls = getattr(module, moduleName)
            helper = cls()
            helper.run(sys.argv[2:])
            return 0
        except Exception:
            traceback.print_exc()
            return 1


if __name__ == '__main__':
    sys.exit(TestHelper.run())