Spaces:
Paused
Paused
Update intent_test_runner.py
Browse files- intent_test_runner.py +69 -69
intent_test_runner.py
CHANGED
@@ -1,70 +1,70 @@
|
|
1 |
-
import os
|
2 |
-
import requests
|
3 |
-
from log import log
|
4 |
-
|
5 |
-
BASE_URL = "
|
6 |
-
MOCK_BASE = os.getenv("MOCK_BASE_URL") # Örnek: https://abc123.ngrok.io
|
7 |
-
|
8 |
-
test_results = []
|
9 |
-
|
10 |
-
def assert_test(name, actual, expected_substring, explanation=None):
|
11 |
-
if explanation:
|
12 |
-
log(f"🧪 TEST: {name} → {explanation}")
|
13 |
-
actual_str = str(actual)
|
14 |
-
if expected_substring in actual_str:
|
15 |
-
log(f"[TEST] {name:<45} ✅")
|
16 |
-
test_results.append((name, True))
|
17 |
-
else:
|
18 |
-
log(f"[TEST] {name:<45} ❌ — Beklenen: {expected_substring}, Gelen: {actual_str[:100]}...")
|
19 |
-
test_results.append((name, False))
|
20 |
-
|
21 |
-
def summarize_tests():
|
22 |
-
total = len(test_results)
|
23 |
-
success = sum(1 for _, ok in test_results if ok)
|
24 |
-
fail = total - success
|
25 |
-
log("🧾 TEST SONUCU ÖZETİ")
|
26 |
-
log(f"🔢 Toplam Test : {total}")
|
27 |
-
log(f"✅ Başarılı : {success}")
|
28 |
-
log(f"❌ Başarısız : {fail}")
|
29 |
-
|
30 |
-
def run_all_tests():
|
31 |
-
try:
|
32 |
-
log("🚀 Test süreci başlatıldı.")
|
33 |
-
response = requests.post(f"{BASE_URL}/start_chat?project_name=project1")
|
34 |
-
session_id = response.json().get("session_id")
|
35 |
-
headers = {"X-Session-ID": session_id}
|
36 |
-
|
37 |
-
# 1. LLM fallback testi (intent bulunamadığında)
|
38 |
-
r = requests.post(f"{BASE_URL}/chat", json={"user_input": "bilinmeyen bir soru"}, headers=headers)
|
39 |
-
assert_test("LLM fallback", r.json(), "maalesef")
|
40 |
-
|
41 |
-
# 2. Eksik parametre testi (döviz kuru)
|
42 |
-
r = requests.post(f"{BASE_URL}/chat", json={"user_input": "döviz kuru nedir"}, headers=headers)
|
43 |
-
assert_test("Eksik parametre — currency", r.json(), "Lütfen currency")
|
44 |
-
|
45 |
-
# 3. Eksik parametre tamamlanınca tekrar deneme
|
46 |
-
r = requests.post(f"{BASE_URL}/chat", json={"user_input": "dolar"}, headers=headers)
|
47 |
-
assert_test("Parametre tamamlandı — dolar", r.json(), "dolar kuru şu an")
|
48 |
-
|
49 |
-
# 4. Geçersiz parametre validasyonu
|
50 |
-
r = requests.post(f"{BASE_URL}/chat", json={"user_input": "yenidolar kuru nedir"}, headers=headers)
|
51 |
-
assert_test("Geçersiz parametre — currency", r.json(), "geçerli bir döviz")
|
52 |
-
|
53 |
-
# 5. Konu değişikliği → awaiting reset
|
54 |
-
r = requests.post(f"{BASE_URL}/chat", json={"user_input": "hava nasıl"}, headers=headers)
|
55 |
-
assert_test("Konu değişikliği sonrası fallback", r.json(), "maalesef")
|
56 |
-
|
57 |
-
# 6. Yol durumu testi (iki parametre eksik veya biri eksik)
|
58 |
-
r = requests.post(f"{BASE_URL}/chat", json={"user_input": "yol durumu"}, headers=headers)
|
59 |
-
assert_test("Eksik parametre — from_location", r.json(), "Lütfen from_location")
|
60 |
-
|
61 |
-
r = requests.post(f"{BASE_URL}/chat", json={"user_input": "Ankara"}, headers=headers)
|
62 |
-
assert_test("Eksik parametre — to_location", r.json(), "Lütfen to_location")
|
63 |
-
|
64 |
-
r = requests.post(f"{BASE_URL}/chat", json={"user_input": "İstanbul"}, headers=headers)
|
65 |
-
assert_test("Parametre tamamlandı — yol durumu", r.json(), "trafik açık")
|
66 |
-
|
67 |
-
summarize_tests()
|
68 |
-
|
69 |
-
except Exception as e:
|
70 |
log(f"❌ run_all_tests sırasında hata oluştu: {e}")
|
|
|
1 |
+
import os
|
2 |
+
import requests
|
3 |
+
from log import log
|
4 |
+
|
5 |
+
BASE_URL = "https://ucsturkey-inference-test.hf.space"
|
6 |
+
MOCK_BASE = os.getenv("MOCK_BASE_URL") # Örnek: https://abc123.ngrok.io
|
7 |
+
|
8 |
+
test_results = []
|
9 |
+
|
10 |
+
def assert_test(name, actual, expected_substring, explanation=None):
|
11 |
+
if explanation:
|
12 |
+
log(f"🧪 TEST: {name} → {explanation}")
|
13 |
+
actual_str = str(actual)
|
14 |
+
if expected_substring in actual_str:
|
15 |
+
log(f"[TEST] {name:<45} ✅")
|
16 |
+
test_results.append((name, True))
|
17 |
+
else:
|
18 |
+
log(f"[TEST] {name:<45} ❌ — Beklenen: {expected_substring}, Gelen: {actual_str[:100]}...")
|
19 |
+
test_results.append((name, False))
|
20 |
+
|
21 |
+
def summarize_tests():
|
22 |
+
total = len(test_results)
|
23 |
+
success = sum(1 for _, ok in test_results if ok)
|
24 |
+
fail = total - success
|
25 |
+
log("🧾 TEST SONUCU ÖZETİ")
|
26 |
+
log(f"🔢 Toplam Test : {total}")
|
27 |
+
log(f"✅ Başarılı : {success}")
|
28 |
+
log(f"❌ Başarısız : {fail}")
|
29 |
+
|
30 |
+
def run_all_tests():
|
31 |
+
try:
|
32 |
+
log("🚀 Test süreci başlatıldı.")
|
33 |
+
response = requests.post(f"{BASE_URL}/start_chat?project_name=project1")
|
34 |
+
session_id = response.json().get("session_id")
|
35 |
+
headers = {"X-Session-ID": session_id}
|
36 |
+
|
37 |
+
# 1. LLM fallback testi (intent bulunamadığında)
|
38 |
+
r = requests.post(f"{BASE_URL}/chat", json={"user_input": "bilinmeyen bir soru"}, headers=headers)
|
39 |
+
assert_test("LLM fallback", r.json(), "maalesef")
|
40 |
+
|
41 |
+
# 2. Eksik parametre testi (döviz kuru)
|
42 |
+
r = requests.post(f"{BASE_URL}/chat", json={"user_input": "döviz kuru nedir"}, headers=headers)
|
43 |
+
assert_test("Eksik parametre — currency", r.json(), "Lütfen currency")
|
44 |
+
|
45 |
+
# 3. Eksik parametre tamamlanınca tekrar deneme
|
46 |
+
r = requests.post(f"{BASE_URL}/chat", json={"user_input": "dolar"}, headers=headers)
|
47 |
+
assert_test("Parametre tamamlandı — dolar", r.json(), "dolar kuru şu an")
|
48 |
+
|
49 |
+
# 4. Geçersiz parametre validasyonu
|
50 |
+
r = requests.post(f"{BASE_URL}/chat", json={"user_input": "yenidolar kuru nedir"}, headers=headers)
|
51 |
+
assert_test("Geçersiz parametre — currency", r.json(), "geçerli bir döviz")
|
52 |
+
|
53 |
+
# 5. Konu değişikliği → awaiting reset
|
54 |
+
r = requests.post(f"{BASE_URL}/chat", json={"user_input": "hava nasıl"}, headers=headers)
|
55 |
+
assert_test("Konu değişikliği sonrası fallback", r.json(), "maalesef")
|
56 |
+
|
57 |
+
# 6. Yol durumu testi (iki parametre eksik veya biri eksik)
|
58 |
+
r = requests.post(f"{BASE_URL}/chat", json={"user_input": "yol durumu"}, headers=headers)
|
59 |
+
assert_test("Eksik parametre — from_location", r.json(), "Lütfen from_location")
|
60 |
+
|
61 |
+
r = requests.post(f"{BASE_URL}/chat", json={"user_input": "Ankara"}, headers=headers)
|
62 |
+
assert_test("Eksik parametre — to_location", r.json(), "Lütfen to_location")
|
63 |
+
|
64 |
+
r = requests.post(f"{BASE_URL}/chat", json={"user_input": "İstanbul"}, headers=headers)
|
65 |
+
assert_test("Parametre tamamlandı — yol durumu", r.json(), "trafik açık")
|
66 |
+
|
67 |
+
summarize_tests()
|
68 |
+
|
69 |
+
except Exception as e:
|
70 |
log(f"❌ run_all_tests sırasında hata oluştu: {e}")
|