Added checks to ensure API responses are as expected #7
@@ -2,3 +2,4 @@ black
 | 
			
		||||
coverage
 | 
			
		||||
pylint
 | 
			
		||||
pytest
 | 
			
		||||
requests-mock
 | 
			
		||||
 
 | 
			
		||||
@@ -2,6 +2,8 @@
 | 
			
		||||
 | 
			
		||||
"""MODULE: Provides test cases for app/ip_info.py."""
 | 
			
		||||
 | 
			
		||||
import requests_mock
 | 
			
		||||
 | 
			
		||||
from app.ip_info import (  # pragma: no cover
 | 
			
		||||
    get_ip_information,
 | 
			
		||||
    get_autonomous_system_number,
 | 
			
		||||
@@ -16,6 +18,15 @@ def test_get_ip_information() -> None:
 | 
			
		||||
    assert ip_info.get("status") == "success" and ip_info.get("query") == test_query
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def test_get_ip_information_broken_api() -> None:
 | 
			
		||||
    """TEST: ensure that None is returned if the IP API response is broken."""
 | 
			
		||||
    test_query = "1.2.3.4"
 | 
			
		||||
    with requests_mock.Mocker() as mocker:
 | 
			
		||||
        mocker.get(f"http://ip-api.com/json/{test_query}", text="error")
 | 
			
		||||
        resp = get_ip_information(test_query)
 | 
			
		||||
        assert not resp
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def test_get_autonomous_system_number() -> None:
 | 
			
		||||
    """TEST: ensure that AS information is parsed into AS number correctly."""
 | 
			
		||||
    as_info = "AS5089 Virgin Media Limited"
 | 
			
		||||
@@ -28,3 +39,15 @@ def test_get_prefix_information() -> None:
 | 
			
		||||
    autonomous_system = "AS109"
 | 
			
		||||
    prefixes = get_prefix_information(autonomous_system)
 | 
			
		||||
    assert "144.254.0.0/16" in prefixes
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def test_get_prefix_information_broken_api() -> None:
 | 
			
		||||
    """TEST: ensure that None is returned if the prefix API response is broken."""
 | 
			
		||||
    autonomous_system = "AS109"
 | 
			
		||||
    with requests_mock.Mocker() as mocker:
 | 
			
		||||
        mocker.get(
 | 
			
		||||
            f"https://api.hackertarget.com/aslookup/?q={str(autonomous_system)}",
 | 
			
		||||
            text="error",
 | 
			
		||||
        )
 | 
			
		||||
        resp = get_prefix_information(autonomous_system)
 | 
			
		||||
        assert not resp
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user