Partie 3 : Tests CSV Python

Partie 3 : Tests d'import des fichiers CSV Python

Contexte : Scripts Python du binôme développeur

Mon binôme (option Développement) a créé des scripts Python pour générer automatiquement des données clients au format CSV compatible avec Odoo.

Vue d'ensemble des scripts développés

Fichiers Python créés (Mission 1 - Développement)

  • GenerateurDonneesPerso.py : Classe principale de génération
  • genere_clients_particuliers_odoo_csv.py : Script particuliers
  • genere_clients_societes_odoo_csv.py : Script sociétés
  • genere_clients_odoo_csv.py : Script unifié

Classe GenerateurDonneesPerso

Cette classe Python utilise des fichiers de données (dictionnaires) pour générer aléatoirement :

# Méthodes de génération disponibles
gen_nom_famille() # Nom de famille aléatoire
gen_prenom(est_feminin) # Prénom M ou F
gen_adresse_rue() # Adresse de rue complète
gen_commune() # Ville + code postal
gen_tel_fixe(nb_chiffres) # Téléphone fixe (01-05)
gen_tel_mobile(nb_chiffres) # Téléphone mobile (06-07)
gen_raison_sociale() # Nom d'entreprise
gen_siret() # Numéro SIRET (14 chiffres)
gen_numtva(siret) # Numéro TVA intra (FR + ...)

Fichiers de données utilisés

Dictionnaires texte

  • dicoNomsFamille.txt
  • dicoPrenomsFille.txt
  • dicoPrenomsGarcon.txt
  • dicoAdressesRue.txt

Données JSON

  • dicoCommunes.json
  • Structure : nom + codes postaux
  • Format JSON pour parsing facile

Test 1 : Import clients particuliers

Mon binôme a généré un fichier CSV de 50 clients particuliers avec son script Python.

Structure du fichier généré

Titre;Nom;Prénom;Email;Téléphone;Mobile;Code postal;Ville;Rue;Est une entreprise
Monsieur;Martin;Lucas;lucas.martin@email.fr;0145678901;0687654321;75001;Paris;42 Rue des Lilas;FAUX
Madame;Bernard;Emma;emma.bernard@email.fr;0298765432;0612345678;29000;Brest;15 Boulevard Albert 1er;FAUX
Monsieur;Dubois;Théo;theo.dubois@email.fr;0456789012;0698765432;69001;Lyon;127 Rue du Général de Gaulle;FAUX

Procédure d'import

  1. Réception du fichier
    Mon binôme m'a envoyé clients_particuliers_50.csv par email
  2. Upload dans Odoo
    Menu Vente → Clients → Favoris → Importer
  3. Vérification du mapping
    Toutes les colonnes correspondent grâce à l'addon Partner firstname
  4. Lancement de l'import
    Import des 50 lignes en quelques secondes
Import réussi !
50 clients particuliers importés sans aucune erreur.
Tous les champs sont correctement remplis : Titre, Prénom, Nom, Email, Téléphones, Adresse complète.

Image suggérée : Screenshot liste contacts importés

Source : Capture d'écran Odoo avec les 50 clients

Test 2 : Import clients sociétés

Mon binôme a également généré un fichier CSV de 30 clients sociétés avec numéros SIRET et TVA.

Champs spécifiques aux sociétés

Champ Description Exemple
Raison sociale Nom de l'entreprise TechSolutions SARL
SIRET 14 chiffres (SIREN + NIC) 82345678900012
TVA Intracommunautaire FR + clé (2) + SIREN (9) FR54 823456789
Email Email professionnel contact@techsolutions.fr
Téléphone Standard entreprise 0145678901
Est une entreprise VRAI (société) VRAI
Rappel SIRET / TVA Intracommunautaire :

SIRET (14 chiffres) = SIREN (9) + NIC (5)
→ Identifie chaque établissement d'une entreprise

TVA Intra = FR + Clé (2) + SIREN (9)
→ Numéro de TVA pour échanges UE

Exemple :
SIRET : 267 128 411 00070
→ TVA : FR54 267 128 411

Import des sociétés

  1. Fichier reçu : clients_societes_30.csv
  2. Import via Odoo (même procédure)
  3. Mapping des colonnes spécifiques (SIRET, TVA)
  4. Validation : 30 sociétés importées
Import sociétés réussi !
30 clients sociétés importés sans erreur.
Les numéros SIRET et TVA intracommunautaires sont cohérents et valides.

Vérifications et contrôles qualité

Après les imports, j'ai effectué plusieurs vérifications pour garantir la qualité des données :

Points contrôlés

  • Séparation Prénom/Nom correcte
  • Emails valides (format @)
  • Téléphones cohérents (01-05 / 06-07)
  • Adresses complètes et réalistes
  • Codes postaux valides (5 chiffres)
  • Cohérence SIRET ↔ TVA Intra
  • Type client (Particulier/Société)

Statistiques finales

  • 50 clients particuliers
  • 30 clients sociétés
  • 80 contacts au total
  • 0 erreur d'import
  • 100% champs remplis
  • 100% données cohérentes

Exemples de vérifications manuelles

J'ai ouvert quelques fiches au hasard pour vérifier :

  • Client particulier : Prénom + Nom bien séparés, email cohérent avec le nom
  • Client société : SIRET 14 chiffres, TVA avec FR + 11 chiffres, cohérence des 9 premiers chiffres
  • Adresses : Rue + Code postal + Ville correctement remplis
Validation complète !
Les fichiers CSV générés par les scripts Python de mon binôme sont de très bonne qualité. L'import dans Odoo s'est déroulé sans aucun problème grâce à l'addon Partner firstname.