 9c4d49189f
			
		
	
	9c4d49189f
	
	
	
		
			
			Compared to mox3, mock is tested much more in various Python 3 versions. Change-Id: I9e83aa622257c36ff47c79f6b491c1b074d2245d
		
			
				
	
	
		
			67 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # Copyright 2012 OpenStack Foundation
 | |
| # All Rights Reserved.
 | |
| #
 | |
| #    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.
 | |
| 
 | |
| import copy
 | |
| import fixtures
 | |
| import six
 | |
| import testtools
 | |
| 
 | |
| from ceilometerclient.common import http
 | |
| 
 | |
| 
 | |
| class BaseTestCase(testtools.TestCase):
 | |
| 
 | |
|     def setUp(self):
 | |
|         super(BaseTestCase, self).setUp()
 | |
|         self.useFixture(fixtures.FakeLogger())
 | |
| 
 | |
| 
 | |
| class FakeAPI(object):
 | |
|     def __init__(self, fixtures):
 | |
|         self.fixtures = fixtures
 | |
|         self.calls = []
 | |
| 
 | |
|     def _request(self, method, url, headers=None, body=None):
 | |
|         call = (method, url, headers or {}, body)
 | |
|         self.calls.append(call)
 | |
|         return self.fixtures[url][method]
 | |
| 
 | |
|     def raw_request(self, *args, **kwargs):
 | |
|         fixture = self._request(*args, **kwargs)
 | |
|         body_iter = http.ResponseBodyIterator(six.StringIO(fixture[1]))
 | |
|         return FakeResponse(fixture[0]), body_iter
 | |
| 
 | |
|     def json_request(self, *args, **kwargs):
 | |
|         fixture = self._request(*args, **kwargs)
 | |
|         return FakeResponse(fixture[0]), fixture[1]
 | |
| 
 | |
| 
 | |
| class FakeResponse(object):
 | |
|     def __init__(self, headers, body=None, version=None):
 | |
|         """:param headers: dict representing HTTP response headers
 | |
|         :param body: file-like object
 | |
|         """
 | |
|         self.headers = headers
 | |
|         self.body = body
 | |
| 
 | |
|     def getheaders(self):
 | |
|         return copy.deepcopy(self.headers).items()
 | |
| 
 | |
|     def getheader(self, key, default):
 | |
|         return self.headers.get(key, default)
 | |
| 
 | |
|     def read(self, amt):
 | |
|         return self.body.read(amt)
 |