from django.test import TestCase
from recuperateur_reseau_viaire.forms import Graph_viaire_ville_informationForm_delete
from recuperateur_reseau_viaire.models import Graph_viaire_ville_information, Ville

class test_form_suppresion_Graph_viaire_ville_informationTestCase(TestCase):

    def setUp(self) -> None:
        """
        Créé une ligne dans la base de donnée Graph_viaire_ville_information au départ pour chaque test
        """
        self.nom_ville_test = "commune"
        #création d'une instance de Ville
        Ville.objects.create(ville_nom=self.nom_ville_test)

        # création d'une instance de Graph_viaire_ville_information_instance
        Graph_viaire_ville_information.objects.create(gvvi_cout = 0, gvvi_robustesse = 0,
                    gvvi_d2_correlation_dimension = 0, gvvi_d1_information_dimension = 0, gvvi_d0_fractal_capacite_dimension = 0,
                gvvi_longueur_moyenne_rues = 0, gvvi_tree_vs_complete_graph = 0, gvvi_org_plan_vs_organized = 0, gvvi_connectivity = 0,
    gvvi_degre_moyen = 0, gvvi_diametre = 0,gvvi_nb_intersection = 0,ville = Ville.objects.get(ville_nom=self.nom_ville_test))
        #graph_viaire_ville_information_instance.save()

    def test_creation_form_vide_suppression(self):
        """
        Ce teste créé un formulaire de suppression de Graph_viaire_ville_information sans modification
         et doit être valide.
        """
        form = Graph_viaire_ville_informationForm_delete()
        self.assertFalse(form.is_valid())

    def test_creation_form_suppression_basic(self):
        """
        Ce test créé un formulaire préremplit de suppression
        """
        graph_viaire_ville_information_instance = Graph_viaire_ville_information.objects.get(
            ville_id=Ville.objects.get(ville_nom=self.nom_ville_test))
        form = Graph_viaire_ville_informationForm_delete(initial={'valeur': graph_viaire_ville_information_instance})
        self.assertTrue(form.is_valid())
        #form.is_valid()
        #print("222 erreurs : ", form.errors)
        #self.assertTrue(False)
