1#!/usr/bin/env python
2############################################################################
3# Joshua R. Boverhof, LBNL
4# See LBNLCopyright for copyright notice!
5###########################################################################
6import os, sys, unittest
7from ServiceTest import main, ServiceTestCase, ServiceTestSuite
8from ZSI import FaultException
9"""
10Unittest
11
12WSDL:  ../../samples/Echo/Echo.wsdl
13"""
14
15# General targets
16def dispatch():
17    """Run all dispatch tests"""
18    suite = ServiceTestSuite()
19    suite.addTest(unittest.makeSuite(EchoTestCase, 'test_dispatch'))
20    return suite
21
22def local():
23    """Run all local tests"""
24    suite = ServiceTestSuite()
25    suite.addTest(unittest.makeSuite(EchoTestCase, 'test_local'))
26    return suite
27
28def net():
29    """Run all network tests"""
30    suite = ServiceTestSuite()
31    suite.addTest(unittest.makeSuite(EchoTestCase, 'test_net'))
32    return suite
33
34def all():
35    """Run all tests"""
36    suite = ServiceTestSuite()
37    suite.addTest(unittest.makeSuite(EchoTestCase, 'test_'))
38    return suite
39
40
41class EchoTestCase(ServiceTestCase):
42    name = "test_Echo"
43    client_file_name = "EchoServer_client.py"
44    types_file_name  = "EchoServer_types.py"
45    server_file_name = "EchoServer_server.py"
46
47    def __init__(self, methodName):
48        ServiceTestCase.__init__(self, methodName)
49        self.wsdl2py_args.append('-b')
50
51    def test_local_Echo(self):
52        msg = self.client_module.EchoRequest()
53        rsp = self.client_module.EchoResponse()
54
55    def test_dispatch_Echo(self):
56        loc = self.client_module.EchoServerLocator()
57        port = loc.getEchoServer(**self.getPortKWArgs())
58
59        msg = self.client_module.EchoRequest()
60        msg.EchoIn = 'bla bla bla'
61        rsp = port.Echo(msg)
62        self.failUnless(rsp.EchoResult == msg.EchoIn, "Bad Echo")
63
64
65if __name__ == "__main__" :
66    main()
67
68