atom.mock_http_core
index
/usr/local/svn/gdata-python-client/src/atom/mock_http_core.py

# Copyright (C) 2009 Google Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

 
Modules
       
StringIO
atom
os
pickle
tempfile

 
Classes
       
__builtin__.object
EchoHttpClient
MockHttpClient
SettableHttpClient
atom.http_core.HttpResponse(__builtin__.object)
MockHttpResponse

 
class EchoHttpClient(__builtin__.object)
    Sends the request data back in the response.
 
Used to check the formatting of the request as it was sent. Always responds
with a 200 OK, and some information from the HTTP request is returned in
special Echo-X headers in the response. The following headers are added
in the response:
'Echo-Host': The host name and port number to which the HTTP connection is
             made. If no port was passed in, the header will contain
             host:None.
'Echo-Uri': The path portion of the URL being requested. /example?x=1&y=2
'Echo-Scheme': The beginning of the URL, usually 'http' or 'https'
'Echo-Method': The HTTP method being used, 'GET', 'POST', 'PUT', etc.
 
  Methods defined here:
request(self, http_request)

Data descriptors defined here:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

 
class MockHttpClient(__builtin__.object)
     Methods defined here:
AddResponse = add_response(self, http_request, status, reason, headers=None, body=None)
Request = request(self, http_request)
__init__(self, recordings=None, real_client=None)
add_response(self, http_request, status, reason, headers=None, body=None)
close_session(self)
Saves recordings in the temporary file named in use_cached_session.
delete_session(self, name=None)
Removes recordings from a previous live request.
get_cache_file_name(self)
request(self, http_request)
Provide a recorded response, or record a response for replay.
 
If the real_client is set, the request will be made using the
real_client, and the response from the server will be recorded.
If the real_client is None (the default), this method will examine
the recordings and find the first which matches.
use_cached_session(self, name=None, real_http_client=None)
Attempts to load recordings from a previous live request.
 
If a temp file with the recordings exists, then it is used to fulfill
requests. If the file does not exist, then a real client is used to 
actually make the desired HTTP requests. Requests and responses are
recorded and will be written to the desired temprary cache file when
close_session is called.
 
Args:
  name: str (optional) The file name of session file to be used. The file
        is loaded from the temporary directory of this machine. If no name
        is passed in, a default name will be constructed using the 
        cache_name_prefix, cache_case_name, and cache_test_name of this
        object.
  real_http_client: atom.http_core.HttpClient the real client to be used
                    if the cached recordings are not found. If the default
                    value is used, this will be an 
                    atom.http_core.HttpClient.

Data descriptors defined here:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

Data and other attributes defined here:
cache_case_name = ''
cache_name_prefix = 'gdata_live_test'
cache_test_name = ''
debug = None
real_client = None

 
class MockHttpResponse(atom.http_core.HttpResponse)
    
Method resolution order:
MockHttpResponse
atom.http_core.HttpResponse
__builtin__.object

Methods defined here:
__init__(self, status=None, reason=None, headers=None, body=None)
read(self)

Methods inherited from atom.http_core.HttpResponse:
getheader(self, name, default=None)
getheaders(self)

Data descriptors inherited from atom.http_core.HttpResponse:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

Data and other attributes inherited from atom.http_core.HttpResponse:
reason = None
status = None

 
class SettableHttpClient(__builtin__.object)
    An HTTP Client which responds with the data given in set_response.
 
  Methods defined here:
__init__(self, status, reason, body, headers)
Configures the response for the server.
 
See set_response for details on the arguments to the constructor.
request(self, http_request)
set_response(self, status, reason, body, headers)
Determines the response which will be sent for each request.
 
Args:
  status: An int for the HTTP status code, example: 200, 404, etc.
  reason: String for the HTTP reason, example: OK, NOT FOUND, etc.
  body: The body of the HTTP response as a string or a file-like 
        object (something with a read method). 
  headers: dict of strings containing the HTTP headers in the response.

Data descriptors defined here:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

 
Data
        __author__ = 'j.s@google.com (Jeff Scudder)'

 
Author
        j.s@google.com (Jeff Scudder)