import requests def test_final_duplicate_fix(): print("=== FINAL DUPLICATE FIX TEST ===") try: # Test the analyze endpoint response = requests.post('http://localhost:8081/analyze', json={'file_path': 'data/sample-data.xlsx'}, timeout=30) if response.status_code == 200: data = response.json() if data.get('success'): results = data['results'] print("✓ Analysis successful!") print(f" Matched items: {results['matched_items_count']}") print(f" KST only: {results['mismatches']['kst_only_count']}") print(f" Coordi only: {results['mismatches']['coordi_only_count']}") print(f" KST duplicates: {results['mismatches']['kst_duplicates_count']}") print(f" Coordi duplicates: {results['mismatches']['coordi_duplicates_count']}") total_different = (results['mismatches']['kst_only_count'] + results['mismatches']['coordi_only_count'] + results['mismatches']['kst_duplicates_count'] + results['mismatches']['coordi_duplicates_count']) print(f" Total different items: {total_different}") # Check for the specific example kst_duplicates = results['mismatch_details']['kst_duplicates'] backlight_duplicates = [item for item in kst_duplicates if '백라이트' in item['title'] and '53-1x' in item['episode']] if backlight_duplicates: print(f"\n✓ Found 백라이트 duplicates: {len(backlight_duplicates)}") print(f" Example: {backlight_duplicates[0]['title']} - Episode {backlight_duplicates[0]['episode']}") print(f"\n✓ Web interface ready at http://localhost:8081") print("✓ The 'Different' tab will now show combined reasons like:") print(" 백라이트 - Episode 53-1x(휴재) | (empty) | Only appears in KST + Duplicate in KST") else: print(f"✗ Analysis failed: {data.get('error')}") else: print(f"✗ Request failed: {response.status_code}") except requests.exceptions.RequestException as e: print(f"✗ Request failed: {e}") if __name__ == "__main__": test_final_duplicate_fix()