############################################################################
# Joshua R. Boverhof, LBNL
# See LBNLCopyright for copyright notice!
###########################################################################

Note that since all services are not always available, connection
timeouts and HTTP errors are not treated as test failures.  

Client and Server stubs will be generated for each test, but 
the Server stubs will are runtime tested only if "dispatch" is 
specified and an executable is provided via the "servers"
section.


To run all "working" tests:
    %./runTests.py
    
To run only "local" tests:
    %./runTests.py local
    
To run only "network" tests:
    %./runTests.py net

To run only tests against the wsdl2dispatch tool:
    %./runTests.py dispatch


Convention Modules:  All test modules should define these targets:

	"all" 
		-- run all tests
	
	"dispatch" 
		-- run only "test_dispatch*" tests
	
	"local" 
		-- run only "test_local*" tests
	
	"net"  
		-- run only "test_net*" tests
	

Convention TestCase: All TestCases should adhere to these conventions.
	
  methods:
	
	"test_net*" 
		-- only tests run against a network available endpoint, which
		is specified in the WSDL location address information item.

	"test_local*"
		-- only local tests, no networking.
		
	"test_dispatch*"
		-- only tests run against a local endpoint, this is
		configured and forked by the unittest framework.  Will 
		override the WSDL location address information item with
		information from the dispatch configuration section.
		
  class attributes:
		
    client_file_name 
	-- if specified, "client_module" attribute will reference module.
	
    types_file_name
    -- if specified, "types_module" attribute will reference module.
    
    server_file_name
    -- if specified, "server_module" attribute will reference module.


Directories:

     "stubs"
         -- Generated code, regenerated everytime a test is run.

     "servers"
         -- Server code, this is an implemenation of service and must
         be an executable.  It is also hand coded.  Used for 
         "dispatch" tests.


Configuration:

    Edit "config.txt", short descriptions are provided inline.

    [configuration]
    The "configuation" section for global configuration.
    
    "tracefile" -- show XML of individual messages as serialized/parsed.
    "debug" -- turn on verbose debugging information.
    "skip" -- skip generation (wsdl2py and wsdl2dispatch)
    "twisted" -- use twisted.web.client

	[dispatch]
	The "configuration" section for dispatch tests.
	
    "host" -- for local tests the hostname where server will be ran.
    "port" -- for local tests the port where server will be ran.
	"path" -- path where service is located
	"other items" -- executable "ServiceContainer" which is configured 
		with the required service instance.
	

    [rpc_encoded],[rpc_encoded_broke],[doc_encoded],[doc_encoded_broke]
    [rpc_literal],[rpc_literal_broke],[doc_literal],[doc_literal_broke]

    Sections to categorize all tests...
    All these sections contain a "test" option, this is a whitespace
    separated list of all the tests that belong in a particular section.

    [WSDL]
    URL to WSDL for particular service.





