File size: 1,616 Bytes
d23039a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
"""Quick smoke test for sensationalism + manipulation detection."""
import sys
sys.path.insert(0, ".")

from services.text_service import score_sensationalism, detect_manipulation_indicators

# --- Sensationalism ---
text1 = "BREAKING: You wont believe this SHOCKING truth! Experts confirm the most DEVASTATING scandal exposed!!!"
s = score_sensationalism(text1)
print(f"Sensationalism: score={s.score} level={s.level}")
print(f"  excl={s.exclamation_count} caps={s.caps_word_count} clickbait={s.clickbait_matches} emotional={s.emotional_word_count} superlative={s.superlative_count}")
assert s.score > 50, f"Expected high sensationalism, got {s.score}"
assert s.level in ("Medium", "High"), f"Expected Medium/High, got {s.level}"
print("  PASS")

# --- Manipulation ---
text2 = "Sources say that experts confirm the shocking truth. Allegedly, everyone knows this is a proven fact."
m = detect_manipulation_indicators(text2)
print(f"\nManipulation indicators: {len(m)} found")
for ind in m:
    print(f"  [{ind.severity}] {ind.pattern_type}: \"{ind.matched_text}\"")
assert len(m) >= 3, f"Expected >=3 indicators, got {len(m)}"
print("  PASS")

# --- Clean text ---
text3 = "The weather today is sunny with clear skies in New Delhi."
s2 = score_sensationalism(text3)
m2 = detect_manipulation_indicators(text3)
print(f"\nClean text: sensationalism={s2.score} ({s2.level}), manipulation={len(m2)}")
assert s2.score < 20, f"Expected low sensationalism for clean text, got {s2.score}"
assert len(m2) == 0, f"Expected 0 manipulation indicators for clean text, got {len(m2)}"
print("  PASS")

print("\nAll tests passed!")