From ce60fb3a000a9563b4a908d8561f7e4bc3f2f729 Mon Sep 17 00:00:00 2001 From: Matt Love Date: Tue, 16 Jul 2019 00:30:57 -0700 Subject: [PATCH] :green_heart: Fix missing reqs & CI cleanup --- requirements.txt | 1 + tests/ci_dev_server.py | 12 +++++------ tests/ci_test.py | 49 ++++++++++++++++++++++-------------------- 3 files changed, 33 insertions(+), 29 deletions(-) diff --git a/requirements.txt b/requirements.txt index dad0141..c4153db 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,6 +2,7 @@ aredis==1.1.5 click==6.7 hiredis==1.0.0 http3==0.6.7 +jinja2==2.10.1 libsass==0.18.0 logzero==1.5.0 markdown2==2.3.7 diff --git a/tests/ci_dev_server.py b/tests/ci_dev_server.py index b60e979..3f14c1b 100755 --- a/tests/ci_dev_server.py +++ b/tests/ci_dev_server.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 """ -Starts hyperglass with the Flask development server +Starts hyperglass with the Sanic web server """ import os import sys @@ -12,15 +12,15 @@ parent_directory = os.path.dirname(working_directory) def construct_test(test_query, location, test_target): - """Constructs JSON POST data for test_hyperglass function""" + """Constructs JSON POST data for test_hyperglass function.""" constructed_query = json.dumps( {"type": test_query, "location": location, "target": test_target} ) return constructed_query -def flask_dev_server(host, port): - """Starts Flask development server for testing without WSGI/Reverse Proxy""" +def test_server(host, port): + """Starts Sanic web server for testing.""" try: sys.path.insert(0, parent_directory) @@ -28,7 +28,7 @@ def flask_dev_server(host, port): from hyperglass import hyperglass render.css() - logger.info("Starting Flask development server") + logger.info("Starting Sanic web server...") hyperglass.app.run(host=host, debug=True, port=port) except: logger.error("Exception occurred while trying to start test server...") @@ -36,4 +36,4 @@ def flask_dev_server(host, port): if __name__ == "__main__": - flask_dev_server("localhost", 5000) + test_server("localhost", 5000) diff --git a/tests/ci_test.py b/tests/ci_test.py index 4a95de7..f7027be 100755 --- a/tests/ci_test.py +++ b/tests/ci_test.py @@ -5,7 +5,7 @@ Runs tests against test hyperglass instance import os import sys import json -import requests +import http3 import logzero working_directory = os.path.dirname(os.path.abspath(__file__)) @@ -36,8 +36,10 @@ def construct_test(test_query, location, test_target): def ci_hyperglass_test( location, target_ipv4, target_ipv6, requires_ipv6_cidr, test_blacklist ): - """Tests hyperglass backend by making use of requests library to mimic the JS Ajax POST \ - performed by the front end.""" + """ + Tests hyperglass backend by making use of HTTP3 library to mimic + the JS Ajax POST performed by the front end. + """ invalid_ip = "this_ain't_an_ip!" invalid_aspath = ".*" ipv4_cidr = "1.1.1.0/24" @@ -45,12 +47,13 @@ def ci_hyperglass_test( ipv6_cidr = "2606:4700:4700::/48" test_headers = {"Content-Type": "application/json"} test_endpoint = "http://localhost:5000/lg" + http_client = http3.AsyncClient() # No Query Type Test try: logger.info("Starting No Query Type test...") test_query = construct_test("", location, target_ipv4) - hg_response = requests.post( - test_endpoint, headers=test_headers, data=test_query + hg_response = http_client.post( + test_endpoint, headers=test_headers, json=test_query ) if not hg_response.status_code in range(400, 500): logger.error(hg_response.text) @@ -62,8 +65,8 @@ def ci_hyperglass_test( try: logger.info("Starting No Location test...") test_query = construct_test("bgp_route", "", target_ipv6) - hg_response = requests.post( - test_endpoint, headers=test_headers, data=test_query + hg_response = http_client.post( + test_endpoint, headers=test_headers, json=test_query ) if not hg_response.status_code in range(400, 500): logger.error(hg_response.text) @@ -75,8 +78,8 @@ def ci_hyperglass_test( try: logger.info("Starting No Target test...") test_query = construct_test("bgp_route", location, "") - hg_response = requests.post( - test_endpoint, headers=test_headers, data=test_query + hg_response = http_client.post( + test_endpoint, headers=test_headers, json=test_query ) if not hg_response.status_code in range(400, 500): logger.error(hg_response.text) @@ -88,8 +91,8 @@ def ci_hyperglass_test( try: logger.info("Starting Invalid BGP IPv4 Route test...") test_query = construct_test("bgp_route", location, invalid_ip) - hg_response = requests.post( - test_endpoint, headers=test_headers, data=test_query + hg_response = http_client.post( + test_endpoint, headers=test_headers, json=test_query ) if not hg_response.status_code in range(400, 500): logger.error(hg_response.text) @@ -101,8 +104,8 @@ def ci_hyperglass_test( try: logger.info("Starting Requires IPv6 CIDR test...") test_query = construct_test("bgp_route", requires_ipv6_cidr, ipv6_host) - hg_response = requests.post( - test_endpoint, headers=test_headers, data=test_query + hg_response = http_client.post( + test_endpoint, headers=test_headers, json=test_query ) if not hg_response.status_code in range(400, 500): logger.error(hg_response.text) @@ -114,8 +117,8 @@ def ci_hyperglass_test( try: logger.info("Starting Invalid BGP Community test...") test_query = construct_test("bgp_community", location, target_ipv4) - hg_response = requests.post( - test_endpoint, headers=test_headers, data=test_query + hg_response = http_client.post( + test_endpoint, headers=test_headers, json=test_query ) if not hg_response.status_code in range(400, 500): logger.error(hg_response.text) @@ -127,8 +130,8 @@ def ci_hyperglass_test( try: logger.info("Starting invalid BGP AS_PATH test...") test_query = construct_test("bgp_aspath", location, invalid_aspath) - hg_response = requests.post( - test_endpoint, headers=test_headers, data=test_query + hg_response = http_client.post( + test_endpoint, headers=test_headers, json=test_query ) if not hg_response.status_code in range(400, 500): logger.error(hg_response.text) @@ -140,8 +143,8 @@ def ci_hyperglass_test( try: logger.info("Starting Invalid IPv4 Ping test...") test_query = construct_test("ping", location, ipv4_cidr) - hg_response = requests.post( - test_endpoint, headers=test_headers, data=test_query + hg_response = http_client.post( + test_endpoint, headers=test_headers, json=test_query ) if not hg_response.status_code in range(400, 500): logger.error(hg_response.text) @@ -153,8 +156,8 @@ def ci_hyperglass_test( try: logger.info("Starting Invalid IPv6 Ping test...") test_query = construct_test("ping", location, ipv6_cidr) - hg_response = requests.post( - test_endpoint, headers=test_headers, data=test_query + hg_response = http_client.post( + test_endpoint, headers=test_headers, json=test_query ) if not hg_response.status_code in range(400, 500): logger.error(hg_response.text) @@ -166,8 +169,8 @@ def ci_hyperglass_test( try: logger.info("Starting Blacklist test...") test_query = construct_test("bgp_route", location, test_blacklist) - hg_response = requests.post( - test_endpoint, headers=test_headers, data=test_query + hg_response = http_client.post( + test_endpoint, headers=test_headers, json=test_query ) if not hg_response.status_code in range(400, 500): logger.error(hg_response.text)