def setUp(self):
     self.request = self.request_get('outils')
     self.exp = Export_icompta_plist(request=self.request)
     directory = os.path.join(settings.PROJECT_PATH, "gsb", "test_files", "export_plist", 'Applications',
                              'Money Journal', 'log')
     efface = list()
     for root, dirs, files in os.walk(directory, topdown=False):
         for name in files:
             efface.append(os.path.join(root, name))
             os.remove(os.path.join(root, name))
     for root, dirs, files in os.walk(directory, topdown=False):
         for name in dirs:
             efface.append(os.path.join(root, name))
             os.rmdir(os.path.join(root, name))
class Test_import_money_journal_export(Test_import_abstract):
    fixtures = ['test_money_journal.yaml', ]

    def setUp(self):
        self.request = self.request_get('outils')
        self.exp = Export_icompta_plist(request=self.request)
        directory = os.path.join(settings.PROJECT_PATH, "gsb", "test_files", "export_plist", 'Applications',
                                 'Money Journal', 'log')
        efface = list()
        for root, dirs, files in os.walk(directory, topdown=False):
            for name in files:
                efface.append(os.path.join(root, name))
                os.remove(os.path.join(root, name))
        for root, dirs, files in os.walk(directory, topdown=False):
            for name in dirs:
                efface.append(os.path.join(root, name))
                os.rmdir(os.path.join(root, name))

    def comp_file(self, filename, nom):

        attendu = os.path.join("export_plist_attendu", 'Applications', 'Money Journal', 'log', '140', '3', '4', filename)
        recu = os.path.join("export_plist", 'Applications', 'Money Journal', 'log', '140', '3', '4', filename)
        self.assert2filesequal(recu, attendu, nom=nom)

    def test_global(self):
            # on efface la table db_log
            models.Db_log.objects.all().delete()
            #cat modifie
            models.Db_log.objects.create(datamodel="cat", id_model=1, type_action="U", uuid="51a6674d-7f28-427b-8cf7-25ad2ac07901")
            #cat cree
            models.Db_log.objects.create(datamodel="cat", id_model=2, type_action="I", uuid="51a6674d-7f28-427b-8cf7-25ad2ac07902")
            models.Db_log.objects.create(datamodel="cat", id_model=72, type_action="I", uuid="51a0004d-7f28-427b-8cf7-44ad2ac07972")
            # c'est une modification d'une operation qui a ete efface (donc qui ne vas pas etre maj)
            models.Db_log.objects.create(datamodel="cat", id_model=35, type_action="I", uuid="51a0004d-7f28-427b-8cf7-44ad2ac07972")
            models.Cat.objects.filter(id=4).delete()  # la cat 4 a ete efface
            models.Db_log.objects.create(datamodel="cat", id_model=4, type_action="D", uuid="51a6674d-7f28-427b-8cf7-25ad2ac07a01")
            models.Compte.objects.filter(id=1).update(nom="compte_modifie")
            models.Compte.objects.create(id=3, nom="Compte nouveau")
            models.Db_log.objects.create(datamodel="compte", id_model=1, type_action="U", uuid="51a6674d-7f28-427b-8cf7-25ad2ac07a01")
            models.Db_log.objects.create(datamodel="compte", id_model=3, type_action="I", uuid="51a6674d-7f28-427b-8cf7-25ad2ac07a01")
            #on mock les opes
            models.Db_log.objects.create(datamodel="ope", id_model=1, type_action="U", uuid="51a6674d-7f28-427b-8cf7-25ad2ac07a01")
            models.Db_log.objects.create(datamodel="ope", id_model=2, type_action="U", uuid="51a6674d-7f28-427b-8cf7-25ad2ac07a02")
            models.Db_log.objects.create(datamodel="ope", id_model=3, type_action="U", uuid="51a6674d-7f28-427b-8cf7-25ad2ac07a03")
            models.Db_log.objects.create(datamodel="ope", id_model=8, type_action="U", uuid="51a6674d-7f28-427b-8cf7-25ad2ac07a08")
            models.Db_log.objects.create(datamodel="ope", id_model=9, type_action="U", uuid="51a6674d-7f28-427b-8cf7-25ad2ac07a09")
            models.Db_log.objects.create(datamodel="ope", id_model=11, type_action="U", uuid="51a6674d-7f28-427b-8cf7-25ad2ac07a10")
            models.Db_log.objects.create(datamodel="ope", id_model=12, type_action="U", uuid="51a6674d-7f28-427b-8cf7-25ad2ac07a11")
            models.Db_log.objects.create(datamodel="ope", id_model=13, type_action="U", uuid="51a6674d-7f28-427b-8cf7-25ad2ac07a12")
            models.Db_log.objects.create(datamodel="ope", id_model=14, type_action="I", uuid="51a6674d-7f28-427b-8cf7-25ad2ac07a13")
            models.Db_log.objects.create(datamodel="ope", id_model=15, type_action="I", uuid="51a6674d-7f28-427b-8cf7-25ad2ac07a14")
            models.Db_log.objects.create(datamodel="ope", id_model=16, type_action="I", uuid="51a6674d-7f28-427b-8cf7-25ad2ac07a15")
            models.Db_log.objects.create(datamodel="ope", id_model=17, type_action="I", uuid="51a6674d-7f28-427b-8cf7-25ad2ac07a16")
            models.Db_log.objects.create(datamodel="ope", id_model=18, type_action="I", uuid="51a6674d-7f28-427b-8cf7-25ad2ac07a17")
            models.Db_log.objects.create(datamodel="ope", id_model=19, type_action="D", uuid="51a6674d-7f28-427b-8cf7-25ad2ac07a18")
            date_time_action = datetime.datetime(2014, 6, 23, 18, 51, 40, tzinfo=tz.utc)
            models.Db_log.objects.all().update(date_time_action=date_time_action)
            mock_date = self.add_minutes(tz.make_aware(datetime.datetime(2014, 6, 23, 0, 0, 0), timezone=tz.utc))
            #test effectif
            with mock.patch('gsb.utils.timezone.now', mock_date.now):
                nb = self.exp.all_since_date(datetime.datetime(2014, 1, 21, 19, 27, 14, tzinfo=tz.utc))
            # compare nb
            compare(nb, collections.Counter({'global': 20, 'ope': 14, 'cat': 4, 'compte': 2}))
            #compare la liste des fichier
            attendu = os.path.join(settings.PROJECT_PATH, "gsb", "test_files", "export_plist_attendu", 'Applications',
                                   'Money Journal')
            recu = os.path.join(settings.PROJECT_PATH, "gsb", "test_files", "export_plist", 'Applications',
                                'Money Journal')
            list_fic_recu = list()
            list_fic_attendu = list()
            for root, dirs, files in os.walk(recu, topdown=False):
                for name in files:
                    list_fic_recu.append(os.path.basename(os.path.join(root, name)))
            for root, dirs, files in os.walk(attendu, topdown=False):
                for name in files:
                    list_fic_attendu.append(os.path.basename(os.path.join(root, name)))
            compare(list_fic_recu, list_fic_attendu)
            #compare chaque fichier
            self.comp_file('1403481660000.log', "export_plist_cat_modif")
            self.comp_file('1403481720000.log', "export_plist_cat_crea")
            self.comp_file('1403481780000.log', "export_plist_cat_vir_eff")
            self.comp_file('1403481840000.log', "export_plist_cat_vir")
            self.comp_file('1403481900000.log', "export_plist_compte_update")
            self.comp_file('1403481960000.log', "export_plist_compte_insert")
            self.comp_file('1403482020000.log', "export_plist_ope1_modifie_negatif")
            self.comp_file('1403482080000.log', "export_plist_ope2_modifie_positif")
            self.comp_file('1403482140000.log', "export_plist_ope3_ost")
            self.comp_file('1403482200000.log', "export_plist_ope8_virement_sortie")
            self.comp_file('1403482260000.log', "export_plist_ope9_virement_entree")
            self.comp_file('1403482320000.log', "export_plist_ope11_ope_ventile_mere")
            self.comp_file('1403482380000.log', "export_plist_ope12_ope_fille_1")
            self.comp_file('1403482440000.log', "export_plist_ope13_ope_fille_2")
            self.comp_file('1403482500000.log', "export_plist_ope14_vir_cree_sortie")
            self.comp_file('1403482560000.log', "export_plist_ope15_vir_cree_entree")
            self.comp_file('1403482620000.log', "export_plist_ope16_ope_mere_cree")
            self.comp_file('1403482680000.log', "export_plist_ope17_ope_fille_cree_1")
            self.comp_file('1403482740000.log', "export_plist_ope18_ope_fille_cree_2")
            self.comp_file('1403482800000.log', "export_plist_ope19_efface")