addon
This commit is contained in:
106
backend/generate_test_peripherals.py
Executable file
106
backend/generate_test_peripherals.py
Executable file
@@ -0,0 +1,106 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Script pour générer des périphériques de test
|
||||
"""
|
||||
import sys
|
||||
from pathlib import Path
|
||||
from datetime import datetime, timedelta
|
||||
import random
|
||||
|
||||
# Add app to path
|
||||
sys.path.insert(0, str(Path(__file__).parent))
|
||||
|
||||
from app.db.session import get_peripherals_db
|
||||
from app.models.peripheral import Peripheral
|
||||
|
||||
|
||||
# Données de test
|
||||
TYPES = [
|
||||
"USB", "Stockage", "Réseau", "Audio", "Vidéo", "Clavier", "Souris",
|
||||
"Webcam", "Adaptateur", "Hub", "Carte réseau", "Bluetooth"
|
||||
]
|
||||
|
||||
MARQUES = [
|
||||
"Logitech", "SanDisk", "Kingston", "TP-Link", "D-Link", "Razer",
|
||||
"Corsair", "Samsung", "Western Digital", "Seagate", "Crucial",
|
||||
"Intel", "Realtek", "Broadcom", "Generic", "Microsoft"
|
||||
]
|
||||
|
||||
ETATS = ["Neuf", "Bon", "Usagé", "Défectueux"]
|
||||
|
||||
BOUTIQUES = ["Amazon", "LDLC", "Rue du Commerce", "CDiscount", "Materiel.net", "Ebay"]
|
||||
|
||||
|
||||
def generate_peripherals(count=40):
|
||||
"""Génère des périphériques de test"""
|
||||
db = next(get_peripherals_db())
|
||||
|
||||
try:
|
||||
print(f"🔧 Génération de {count} périphériques de test...")
|
||||
print("=" * 60)
|
||||
|
||||
for i in range(1, count + 1):
|
||||
type_principal = random.choice(TYPES)
|
||||
marque = random.choice(MARQUES)
|
||||
|
||||
# Générer nom basé sur type et marque
|
||||
nom = f"{marque} {type_principal} {random.randint(100, 9999)}"
|
||||
|
||||
# Modèle
|
||||
modeles = [
|
||||
f"Model {chr(65 + random.randint(0, 25))}{random.randint(100, 999)}",
|
||||
f"Pro {random.randint(1, 5)}",
|
||||
f"Elite {random.choice(['X', 'S', 'Pro', 'Plus'])}",
|
||||
f"{random.choice(['Ultra', 'Super', 'Mega'])} {random.randint(100, 999)}"
|
||||
]
|
||||
modele = random.choice(modeles)
|
||||
|
||||
# Créer périphérique
|
||||
peripheral = Peripheral(
|
||||
nom=nom,
|
||||
type_principal=type_principal,
|
||||
marque=marque,
|
||||
modele=modele,
|
||||
numero_serie=f"SN{random.randint(100000, 999999)}",
|
||||
etat=random.choice(ETATS),
|
||||
rating=random.randint(0, 5),
|
||||
quantite_totale=random.randint(1, 5),
|
||||
quantite_disponible=random.randint(0, 5),
|
||||
prix=round(random.uniform(5.99, 199.99), 2) if random.random() > 0.2 else None,
|
||||
devise="EUR",
|
||||
boutique=random.choice(BOUTIQUES) if random.random() > 0.3 else None,
|
||||
date_achat=(datetime.now() - timedelta(days=random.randint(0, 730))).date() if random.random() > 0.4 else None,
|
||||
garantie_duree_mois=random.choice([12, 24, 36]) if random.random() > 0.5 else None,
|
||||
synthese=f"Périphérique de test #{i}\n\nGénéré automatiquement pour tester la pagination." if random.random() > 0.7 else None,
|
||||
notes=f"Notes de test pour le périphérique #{i}" if random.random() > 0.6 else None,
|
||||
)
|
||||
|
||||
db.add(peripheral)
|
||||
|
||||
if i % 10 == 0:
|
||||
db.commit()
|
||||
print(f" ✅ {i}/{count} périphériques créés")
|
||||
|
||||
db.commit()
|
||||
print("\n" + "=" * 60)
|
||||
print(f"✅ {count} périphériques de test créés avec succès !")
|
||||
|
||||
# Statistiques
|
||||
total = db.query(Peripheral).count()
|
||||
print(f"📊 Total dans la base : {total} périphériques")
|
||||
|
||||
except Exception as e:
|
||||
print(f"❌ Erreur : {e}")
|
||||
db.rollback()
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
import argparse
|
||||
|
||||
parser = argparse.ArgumentParser(description='Générer des périphériques de test')
|
||||
parser.add_argument('--count', type=int, default=40, help='Nombre de périphériques à générer (défaut: 40)')
|
||||
args = parser.parse_args()
|
||||
|
||||
generate_peripherals(args.count)
|
||||
Reference in New Issue
Block a user