This commit is contained in:
Gilles Soulier
2026-01-05 16:08:01 +01:00
parent dcba044cd6
commit c67befc549
2215 changed files with 26743 additions and 329 deletions

View 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)