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

MockService provides CRUD ops. for mocking calls to AtomPub services.
 
MockService: Exposes the publicly used methods of AtomService to provide
    a mock interface which can be used in unit tests.

 
Modules
       
atom
pickle

 
Classes
       
__builtin__.object
MockHttpResponse
MockRequest

 
class MockHttpResponse(__builtin__.object)
    Returned from MockService crud methods as the server's response.
 
  Methods defined here:
__init__(self, body=None, status=None, reason=None, headers=None)
Construct a mock HTTPResponse and set members.
 
Args:
  body: str (optional) The HTTP body of the server's response. 
  status: int (optional) 
  reason: str (optional)
  headers: dict (optional)
getheader(self, header_name)
read(self)

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

 
class MockRequest(__builtin__.object)
    Represents a request made to an AtomPub server.
 
These objects are used to determine if a client request matches a recorded
HTTP request to determine what the mock server's response will be.
 
  Methods defined here:
ConcealSecrets(self, conceal_func)
Conceal secret data in this request.
IsMatch(self, other_request)
Check to see if the other_request is equivalent to this request.
 
Used to determine if a recording matches an incoming request so that a
recorded response should be sent to the client.
 
The matching is not exact, only the operation and URL are examined 
currently.
 
Args:
  other_request: MockRequest The request which we want to check this
      (self) MockRequest against to see if they are equivalent.
__init__(self, operation, uri, host=None, ssl=False, port=None, data=None, extra_headers=None, url_params=None, escape_params=True, content_type='application/atom+xml')
Constructor for a MockRequest
 
Args:
  operation: str One of 'GET', 'POST', 'PUT', or 'DELETE' this is the
      HTTP operation requested on the resource.
  uri: str The URL describing the resource to be modified or feed to be
      retrieved. This should include the protocol (http/https) and the host
      (aka domain). For example, these are some valud full_uris:
      'http://example.com', 'https://www.google.com/accounts/ClientLogin'
  host: str (optional) The server name which will be placed at the 
      beginning of the URL if the uri parameter does not begin with 'http'.
      Examples include 'example.com', 'www.google.com', 'www.blogger.com'.
  ssl: boolean (optional) If true, the request URL will begin with https 
      instead of http.
  data: ElementTree, filestream, list of parts, or other object which can be
      converted to a string. (optional)
      Should be set to None when performing a GET or PUT.
      If data is a file-like object which can be read, the constructor 
      will read the entire file into memory. If the data is a list of 
      parts to be sent, each part will be evaluated and stored.
  extra_headers: dict (optional) HTTP headers included in the request.
  url_params: dict (optional) Key value pairs which should be added to 
      the URL as URL parameters in the request. For example uri='/', 
      url_parameters={'foo':'1','bar':'2'} could become '/?foo=1&bar=2'.
  escape_params: boolean (optional) Perform URL escaping on the keys and 
      values specified in url_params. Defaults to True.
  content_type: str (optional) Provides the MIME type of the data being 
      sent.

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

 
Functions
       
ConcealValueWithSha(source)
DumpRecordings(conceal_func=<function ConcealValueWithSha at 0x7faf3dee4c08>)
HttpRequest(service, operation, data, uri, extra_headers=None, url_params=None, escape_params=True, content_type='application/atom+xml')
Simulates an HTTP call to the server, makes an actual HTTP request if 
real_request_handler is set.
 
This function operates in two different modes depending on if 
real_request_handler is set or not. If real_request_handler is not set,
HttpRequest will look in this module's recordings list to find a response
which matches the parameters in the function call. If real_request_handler
is set, this function will call real_request_handler.HttpRequest, add the
response to the recordings list, and respond with the actual response.
 
Args:
  service: atom.AtomService object which contains some of the parameters
      needed to make the request. The following members are used to
      construct the HTTP call: server (str), additional_headers (dict),
      port (int), and ssl (bool).
  operation: str The HTTP operation to be performed. This is usually one of
      'GET', 'POST', 'PUT', or 'DELETE'
  data: ElementTree, filestream, list of parts, or other object which can be
      converted to a string.
      Should be set to None when performing a GET or PUT.
      If data is a file-like object which can be read, this method will read
      a chunk of 100K bytes at a time and send them.
      If the data is a list of parts to be sent, each part will be evaluated
      and sent.
  uri: The beginning of the URL to which the request should be sent.
      Examples: '/', '/base/feeds/snippets',
      '/m8/feeds/contacts/default/base'
  extra_headers: dict of strings. HTTP headers which should be sent
      in the request. These headers are in addition to those stored in
      service.additional_headers.
  url_params: dict of strings. Key value pairs to be added to the URL as
      URL parameters. For example {'foo':'bar', 'test':'param'} will
      become ?foo=bar&test=param.
  escape_params: bool default True. If true, the keys and values in
      url_params will be URL escaped when the form is constructed
      (Special characters converted to %XX form.)
  content_type: str The MIME type for the data being sent. Defaults to
      'application/atom+xml', this is only used if data is set.
LoadRecordings(recordings_file_or_string)

 
Data
        __author__ = 'api.jscudder (Jeffrey Scudder)'
real_request_handler = None
recordings = []

 
Author
        api.jscudder (Jeffrey Scudder)