def test_that_repo_is_replicated_successfully(test_client): fake_github = fakes.FakeGithubApi() fake_github.authorized = True user_response = fakes.FakeResponse({'login': '******'}) fake_github.add_get_response('/user', user_response) fork_response = fakes.FakeResponse(status_code=202) fake_github.add_post_response('/repos/andjey/self-replicating-repo/forks', fork_response) response = test_client(fake_github).get('/replicate') assert response.status_code == 200 assert b'https://github.com/frodo_baggins/self-replicating-repo' in response.get_data()
def test_that_replication_has_failed(test_client): fake_github = fakes.FakeGithubApi() fake_github.authorized = True user_response = fakes.FakeResponse({'login': '******'}) fake_github.add_get_response('/user', user_response) fork_response = fakes.FakeResponse( json_response={'Message': 'Sorry, folks, currently Github is down!'}, status_code=500 ) fake_github.add_post_response('/repos/andjey/self-replicating-repo/forks', fork_response) response = test_client(fake_github).get('/replicate') assert response.status_code == 200 assert b"{'Message': 'Sorry, folks, currently Github is down!'}" in response.get_data()
def test_under_list_post(self): mgr = self.manager resp = fakes.FakeResponse() body = {"fakes": {"foo": "bar"}} mgr.api.method_post = Mock(return_value=(resp, body)) mgr.plural_response_key = "fakes" mgr.resource_class = fakes.FakeEntity ret = mgr._list(fake_url, body="test") mgr.api.method_post.assert_called_once_with(fake_url, body="test") self.assertTrue(isinstance(ret, list)) self.assertEqual(len(ret), 1) self.assertTrue(isinstance(ret[0], fakes.FakeEntity))
def test_under_create_return_none(self): mgr = self.manager sav_rh = mgr.run_hooks mgr.run_hooks = Mock() mgr.api.method_post = Mock() resp = fakes.FakeResponse() body = None mgr.api.method_post = Mock(return_value=(resp, body)) ret = mgr._create(fake_url, "", return_none=True, return_raw=False) self.assertIsNone(ret) mgr.api.method_post.assert_called_once_with(fake_url, body="") mgr.run_hooks = sav_rh
def test_change_user_password(self): inst = self.instance fakeuser = utils.random_name() newpass = utils.random_name() resp = fakes.FakeResponse() resp.status = 202 inst._user_manager.api.method_put = Mock(return_value=(resp, {})) inst.change_user_password(fakeuser, newpass) inst._user_manager.api.method_put.assert_called_once_with( "/None", body={"users": [{ "password": newpass, "name": fakeuser }]})
def test_under_update(self): mgr = self.manager sav_rh = mgr.run_hooks mgr.run_hooks = Mock() mgr.api.method_put = Mock() resp = fakes.FakeResponse() body = {"fakes": {"foo": "bar"}} mgr.api.method_put = Mock(return_value=(resp, body)) mgr.resource_class = fakes.FakeEntity mgr.response_key = "fakes" ret = mgr._update(fake_url, "") mgr.api.method_put.assert_called_once_with(fake_url, body="") self.assertEqual(ret, body) mgr.run_hooks = sav_rh
def test_under_create_return_resource(self): mgr = self.manager sav_rh = mgr.run_hooks mgr.run_hooks = Mock() mgr.api.method_post = Mock() resp = fakes.FakeResponse() body = {"fakes": {"foo": "bar"}} mgr.api.method_post = Mock(return_value=(resp, body)) mgr.resource_class = fakes.FakeEntity mgr.response_key = "fakes" ret = mgr._create(fake_url, "", return_none=False, return_raw=False) self.assertTrue(isinstance(ret, fakes.FakeEntity)) mgr.api.method_post.assert_called_once_with(fake_url, body="") mgr.run_hooks = sav_rh
def test_request_400(self): clt = self.client clt.http_log_debug = False fakeresp = fakes.FakeResponse() fakeresp.status = 400 body_content = {"one": 2, "three": 4} fakebody = json.dumps(body_content) sav = httplib2.Http.request httplib2.Http.request = Mock(return_value=(fakeresp, fakebody)) savexc = exc.from_response exc.from_response = Mock(side_effect=fakes.FakeException) self.assertRaises(fakes.FakeException, clt.request) exc.from_response = savexc httplib2.Http.request = sav
def test_request_ok(self): clt = self.client clt.http_log_debug = False fakeresp = fakes.FakeResponse() fakeresp.status = 200 body_content = {"one": 2, "three": 4} fakebody = json.dumps(body_content) sav = httplib2.Http.request httplib2.Http.request = Mock(return_value=(fakeresp, fakebody)) resp, body = clt.request(body="text") self.assertTrue(isinstance(resp, fakes.FakeResponse)) self.assertEqual(resp.status, 200) self.assertEqual(body, body_content) httplib2.Http.request = sav
def test_from_response_with_body(self): fake_resp = fakes.FakeResponse() fake_resp.status = 666 fake_body = { "error": { "message": "fake_message", "details": "fake_details" } } ret = exc.from_response(fake_resp, fake_body) self.assertTrue(isinstance(ret, exc.ClientException)) self.assertEqual(ret.code, fake_resp.status) self.assertEqual(ret.message, "fake_message") self.assertEqual(ret.details, "fake_details") self.assertTrue("HTTP 666" in str(ret))
def test_from_response_no_body(self): fake_resp = fakes.FakeResponse() fake_resp.status = 666 ret = exc.from_response(fake_resp, None) self.assertTrue(isinstance(ret, exc.ClientException)) self.assertEqual(ret.code, fake_resp.status)