phish-transformer / tests /test_api.py
RamadhanZome's picture
Upload folder using huggingface_hub
7500cab verified
import sys
from pathlib import Path
sys.path.append(str(Path(__file__).resolve().parents[1]))
import unittest
import json
from src.inference.app import app
class APITestCase(unittest.TestCase):
"""
Unit test for the phishing URL prediction API.
"""
def setUp(self):
"""Creating a Flask test client before each test."""
self.client = app.test_client()
def test_predict(self):
"""Ensuring prediction endpoint returns a phishing score"""
response = self.client.post(
"/predict",
json = {"url" : "www.dghjdgf.com/paypal.co.uk/cycgi-bin/webscrcmd=_home-customer&nav=1/loading.php"}
)
self.assertEqual(response.status_code, 200)
data = response.get_json()
self.assertIn("phishing", data)
self.assertIsInstance(data["phishing"], float)
def test_missing_url(self):
"""Ensuring API returns an error when 'url' is missing"""
response = self.client.post("/predict", json = {})
self.assertNotEqual(response.status_code, 200)
if __name__ == "__main__":
unittest.main()