Skip to content

Commit 4e36827

Browse files
ISSUE #92
1 parent fa487e8 commit 4e36827

File tree

1 file changed

+90
-0
lines changed

1 file changed

+90
-0
lines changed

tests/test_api_gateway/test_rest/test_admin.py

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,5 +233,95 @@ async def test_admin_delete_rule(self):
233233
self.assertEqual(200, response.status)
234234

235235

236+
class TestApiGatewayAdminAutzRules(AioHTTPTestCase):
237+
CONFIG_FILE_PATH = BASE_PATH / "config.yml"
238+
239+
@mock.patch.dict(os.environ, {"API_GATEWAY_REST_CORS_ENABLED": "true"})
240+
def setUp(self) -> None:
241+
self.config = ApiGatewayConfig(self.CONFIG_FILE_PATH)
242+
super().setUp()
243+
244+
def tearDown(self) -> None:
245+
super().tearDown()
246+
247+
async def get_application(self):
248+
"""
249+
Override the get_app method to return your application.
250+
"""
251+
rest_service = ApiGatewayRestService(
252+
address=self.config.rest.host, port=self.config.rest.port, config=self.config
253+
)
254+
255+
return await rest_service.create_application()
256+
257+
@unittest_run_loop
258+
async def test_admin_get_rules(self):
259+
url = "/admin/autz-rules"
260+
261+
response = await self.client.request("GET", url)
262+
263+
self.assertEqual(200, response.status)
264+
265+
@unittest_run_loop
266+
async def test_admin_create_rule(self):
267+
url = "/admin/autz-rules"
268+
269+
response = await self.client.request(
270+
"POST",
271+
url,
272+
data=json.dumps({"service": "abc", "roles": ["*"], "rule": "*://*/abc/*", "methods": ["GET", "POST"]}),
273+
)
274+
275+
self.assertEqual(200, response.status)
276+
277+
@unittest_run_loop
278+
async def test_admin_update_rule(self):
279+
url = "/admin/autz-rules"
280+
281+
res = await self.client.request(
282+
"POST",
283+
url,
284+
data=json.dumps(
285+
{"service": "abcd", "roles": ["*"], "rule": "test_rule_update", "methods": ["GET", "POST"]}
286+
),
287+
)
288+
289+
data = json.loads(await res.text())
290+
291+
self.assertEqual(200, res.status)
292+
293+
url = f"/admin/autz-rules/{data['id']}"
294+
295+
response = await self.client.request(
296+
"PATCH",
297+
url,
298+
data=json.dumps({"service": "abcde_modified", "rule": "*://*/abcde/*", "methods": ["GET", "POST"]}),
299+
)
300+
301+
self.assertEqual(200, response.status)
302+
303+
@unittest_run_loop
304+
async def test_admin_delete_rule(self):
305+
url = "/admin/autz-rules"
306+
307+
res = await self.client.request(
308+
"POST",
309+
url,
310+
data=json.dumps(
311+
{"service": "efg", "roles": ["*"], "rule": "efg_test_rule_delete", "methods": ["GET", "POST"]}
312+
),
313+
)
314+
315+
data = json.loads(await res.text())
316+
317+
self.assertEqual(200, res.status)
318+
319+
url = f"/admin/autz-rules/{data['id']}"
320+
321+
response = await self.client.request("DELETE", url)
322+
323+
self.assertEqual(200, response.status)
324+
325+
236326
if __name__ == "__main__":
237327
unittest.main()

0 commit comments

Comments
 (0)