class TestFixture(TestCase): def setUp(self): mock_config_parser = configparser.ConfigParser() mock_os = mock.Mock() mock_config_parser["kong-apikey"] = {"apikey": "testing_api_key"} mock_config_parser.read = mock.MagicMock() mock_config_parser.ConfigParser = mock.MagicMock( return_value=mock_config_parser) mock_os.environ = { "kong_apikey_file": "secrets.ini" } sys.modules['configparser'] = mock_config_parser sys.modules['os'] = mock_os from fixture import Fixture self.subject = Fixture() @responses.activate def test_run_create_all_succeed(self): responses.add(responses.GET, 'http://kong:8001/consumers/admin/key-auth', status=404) responses.add(responses.POST, 'http://kong:8001/consumers', status=201) responses.add(responses.POST, 'http://kong:8001/consumers/admin/key-auth', status=201) responses.add(responses.GET, 'http://kong:8001/services/adminApi', status=404) responses.add(responses.POST, 'http://kong:8001/services', status=201) responses.add(responses.GET, 'http://kong:8001/services/adminApi/routes/adminApi', status=404) responses.add(responses.POST, 'http://kong:8001/services/adminApi/routes', status=201) responses.add( responses.GET, 'http://kong:8001/services/adminApi/routes/adminApiRegisterInstance', status=404) responses.add( responses.GET, 'http://kong:8001/services/adminApi/routes/adminApiRenewInstance', status=404) responses.add(responses.POST, 'http://kong:8001/services/adminApi/routes', status=201) responses.add(responses.GET, 'http://kong:8001/routes/adminApi/plugins', status=200, json={"data": []}) responses.add(responses.POST, 'http://kong:8001/routes/adminApi/plugins', status=201) responses.add(responses.GET, 'http://kong:8001/services/adminApi/plugins', status=200, json={"data": []}) responses.add(responses.POST, 'http://kong:8001/services/adminApi/plugins', status=201) responses.add( responses.GET, 'http://kong:8001/routes/adminApiRegisterInstance/plugins', status=200, json={"data": []}) responses.add( responses.POST, 'http://kong:8001/routes/adminApiRegisterInstance/plugins', status=201) responses.add(responses.GET, 'http://kong:8001/routes/adminApiRenewInstance/plugins', status=200, json={"data": []}) responses.add(responses.POST, 'http://kong:8001/routes/adminApiRenewInstance/plugins', status=201) responses.add(responses.GET, 'http://kong:8001/plugins', status=200, json={"data": []}) responses.add(responses.POST, 'http://kong:8001/plugins', status=201) self.subject.run() self.assertTrue( responses.assert_call_count( 'http://kong:8001/routes/adminApi/plugins', 3)) self.assertTrue( responses.assert_call_count( 'http://kong:8001/routes/adminApiRegisterInstance/plugins', 2)) self.assertTrue( responses.assert_call_count( 'http://kong:8001/routes/adminApiRenewInstance/plugins', 4)) self.assertTrue( responses.assert_call_count( 'http://kong:8001/services/adminApi/plugins', 2)) def test_get_admin_plugins(self): result = self.subject.get_admin_plugins() self.assertEqual(len(result), 8) @responses.activate def test_create_admin_service_and_failed(self): responses.add(responses.GET, 'http://kong:8001/services/adminApi', status=404) responses.add(responses.POST, 'http://kong:8001/services', status=404) with self.assertRaises(SystemExit): self.subject.create_admin_service() self.assertEqual( responses.calls[1].request.body, 'name=adminApi&protocol=http&port=8001&host=127.0.0.1') @responses.activate def test_create_admin_service_and_success(self): responses.add(responses.GET, 'http://kong:8001/services/adminApi', status=404) responses.add(responses.POST, 'http://kong:8001/services', status=201) self.subject.create_admin_service() self.assertEqual( responses.calls[1].request.body, 'name=adminApi&protocol=http&port=8001&host=127.0.0.1')