home *** CD-ROM | disk | FTP | other *** search
/ Freelog 125 / Freelog_MarsAvril2015_No125.iso / Internet / gpodder / gpodder-portable.exe / gpodder-portable / src / mygpoclient / testing.py < prev    next >
Text File  |  2014-10-30  |  2KB  |  54 lines

  1. # -*- coding: utf-8 -*-
  2. # gpodder.net API Client
  3. # Copyright (C) 2009-2013 Thomas Perl and the gPodder Team
  4. #
  5. # This program is free software: you can redistribute it and/or modify
  6. # it under the terms of the GNU General Public License as published by
  7. # the Free Software Foundation, either version 3 of the License, or
  8. # (at your option) any later version.
  9. #
  10. # This program is distributed in the hope that it will be useful,
  11. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13. # GNU General Public License for more details.
  14. #
  15. # You should have received a copy of the GNU General Public License
  16. # along with this program.  If not, see <http://www.gnu.org/licenses/>.
  17.  
  18. from mygpoclient import json
  19.  
  20. class FakeJsonClient(object):
  21.     """Fake implementation of a JsonClient used for testing
  22.  
  23.     Set the response using response_value and check the list
  24.     of requests this object got using the requests list.
  25.     """
  26.     def __init__(self):
  27.         self.requests = []
  28.         self.response_value = ''
  29.  
  30.     def __call__(self, *args, **kwargs):
  31.         """Fake a constructor for an existing object
  32.  
  33.         >>> fake_class = FakeJsonClient()
  34.         >>> fake_object = fake_class('username', 'password')
  35.         >>> fake_object == fake_class
  36.         True
  37.         """
  38.         return self
  39.  
  40.     def _request(self, method, uri, data):
  41.         self.requests.append((method, uri, data))
  42.         data = json.JsonClient.encode(data)
  43.         return json.JsonClient.decode(self.response_value)
  44.  
  45.     def GET(self, uri):
  46.         return self._request('GET', uri, None)
  47.  
  48.     def POST(self, uri, data):
  49.         return self._request('POST', uri, data)
  50.  
  51.     def PUT(self, uri, data):
  52.         return self._request('PUT', uri, data)
  53.  
  54.