Spaces:
Runtime error
Runtime error
| import unittest | |
| from pathlib import Path | |
| import pandas as pd | |
| from fastapi.testclient import TestClient | |
| from app import app | |
| # The raw file URL has to be used for GitLab. | |
| URL = "https://gitlab.com/tangibleai/community/mathtext/-/raw/main/mathtext/data/master_test_text2int.csv" | |
| DATA_DIR = Path(__file__).parent.parent / "mathtext_fastapi" / "data" | |
| print(DATA_DIR) | |
| client = TestClient(app) | |
| class TestStringMethods(unittest.TestCase): | |
| def setUp(self): | |
| """Creates a fastapi test client""" | |
| self.client = TestClient(app) | |
| self.df = pd.read_csv(URL) | |
| def get_response_text2int(self, text): | |
| """Makes a post request to the endpoint""" | |
| r = None | |
| try: | |
| r = self.client.post("/text2int", json={"content": text}) \ | |
| .json().get("message") | |
| except: | |
| pass | |
| return r | |
| def test_endpoint_text2int(self): | |
| """Tests if endpoint is working""" | |
| response = self.client.post("/text2int", | |
| json={"content": "fourteen"} | |
| ) | |
| self.assertEqual(response.status_code, 200) | |
| def test_acc_score_text2int(self): | |
| """Calculates accuracy score for endpoint""" | |
| self.df["text2int"] = self.df["input"].apply(func=self.get_response_text2int) | |
| self.df["score"] = self.df[["output", "text2int"]].apply( | |
| lambda row: row[0] == row[1], | |
| axis=1 | |
| ) | |
| self.df.to_csv(f"{DATA_DIR}/text2int_results.csv", index=False) | |
| acc_score = self.df["score"].mean().__round__(2) | |
| self.assertGreaterEqual(acc_score, 0.5, f"Accuracy score: '{acc_score}'. Value is too low!") | |
| if __name__ == '__main__': | |
| unittest.main() | |