#!/usr/bin/env python3
"""
Test script to verify WiFi adapter classification
"""
import sys
sys.path.insert(0, '/home/gilles/projects/serv_benchmark/backend')

from app.utils.device_classifier import DeviceClassifier

# Test data from the Realtek RTL8188GU WiFi adapter
test_content = """
Bus 003 Device 002: ID 0bda:b711 Realtek Semiconductor Corp. RTL8188GU 802.11n WLAN Adapter (After Modeswitch)
Negotiated speed: High Speed (480Mbps)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 [unknown]
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x0bda Realtek Semiconductor Corp.
  idProduct          0xb711 RTL8188GU 802.11n WLAN Adapter (After Modeswitch)
  bcdDevice            2.00
  iManufacturer           1 Realtek
  iProduct                2 802.11n WLAN Adapter
  iSerial                 3 00E04CB82101
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x003c
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           6
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              2 802.11n WLAN Adapter
"""

device_info = {
    "vendor_id": "0x0bda",
    "product_id": "0xb711",
    "manufacturer": "Realtek",
    "product": "802.11n WLAN Adapter",
    "interface_classes": [{"code": 255, "name": "Vendor Specific Class"}],
    "device_class": "00"
}

print("=" * 60)
print("TEST: Realtek RTL8188GU WiFi Adapter Classification")
print("=" * 60)

# Test 1: Full classification
type_principal, sous_type = DeviceClassifier.classify_device(
    cli_content=test_content,
    synthese_content=None,
    device_info=device_info
)

print(f"\n✓ Type principal: {type_principal}")
print(f"✓ Sous-type: {sous_type}")

# Test 2: Keyword detection
keyword_result = DeviceClassifier.detect_from_keywords(test_content)
print(f"\n✓ Keyword detection: {keyword_result}")

# Test 3: Network refinement
if type_principal == "USB" and sous_type == "Autre":
    refined = DeviceClassifier.refine_usb_network_subtype(test_content)
    print(f"\n✓ After refinement: USB / {refined}")
    sous_type = refined

print("\n" + "=" * 60)
if type_principal == "USB" and sous_type == "Adaptateur WiFi":
    print("✅ SUCCESS: Correctly identified as WiFi adapter!")
else:
    print(f"❌ FAILED: Expected 'USB / Adaptateur WiFi', got '{type_principal} / {sous_type}'")
print("=" * 60)
