Пример #1
0
 def test_error_05(self):
     """Contacts links error."""
     it1 = intervenant.Intervenant(code=1)
     it2 = intervenant.Intervenant(code=2)
     contacts = [
         intervenant.Contact(code=10, intervenant=it1),
         intervenant.Contact(code=20, intervenant=it2)
     ]
     it1.contacts = contacts[0]
     it2.contacts = contacts[1]
     self.assertRaises(ValueError, it1.__setattr__,
                       *('contacts', contacts[1]))
     self.assertRaises(ValueError, it2.__setattr__,
                       *('contacts', contacts[0]))
Пример #2
0
 def test_base_03(self):
     """SIRET Intervenant."""
     code = 12345678901234
     origine = 'SIRET'
     nom = 'Service Central de la Pluie'
     mnemo = 'SCHAPI'
     contacts = [intervenant.Contact(code=0), intervenant.Contact(code=1)]
     it = intervenant.Intervenant(code=code,
                                  origine='I',
                                  nom=nom,
                                  mnemo=mnemo,
                                  contacts=contacts)
     self.assertEqual((it.code, it.origine, it.nom, it.mnemo, it.contacts),
                      (code, origine, nom, mnemo, contacts))
     for ct in it.contacts:
         self.assertEqual(ct.intervenant, it)
Пример #3
0
 def test_base_02(self):
     """Dtprod tests."""
     emetteur = intervenant.Contact()
     destinataire = intervenant.Intervenant()
     # default dtprod is utcnow()
     sce = Scenario(emetteur=emetteur, destinataire=destinataire)
     self.assertTrue(isinstance(sce.dtprod, datetime.datetime))
     # stringt dtprod
     dtprod = '2012-12-12T05:33+00'
     sce = Scenario(
         emetteur=emetteur, destinataire=destinataire,
         dtprod=dtprod
     )
     self.assertEqual(sce.dtprod, datetime.datetime(2012, 12, 12, 5, 33))
     # datetime dtprod
     sce = Scenario(
         emetteur=emetteur, destinataire=destinataire,
         dtprod=datetime.datetime(2012, 12, 12, 5, 33)
     )
     self.assertEqual(sce.dtprod, datetime.datetime(2012, 12, 12, 5, 33))
     # datetime64 dtprod
     sce = Scenario(
         emetteur=emetteur, destinataire=destinataire,
         dtprod=numpy.datetime64(dtprod)
     )
     self.assertEqual(sce.dtprod, datetime.datetime(2012, 12, 12, 5, 33))
Пример #4
0
 def test_str_01(self):
     """Test __str__ method with basic values."""
     emetteur = intervenant.Contact()
     destinataire = intervenant.Intervenant()
     scenario = Scenario(emetteur=emetteur, destinataire=destinataire)
     msg = Message(scenario=scenario, strict=False)
     self.assertTrue(msg.__str__().rfind('Message') > -1)
Пример #5
0
 def test_base_01(self):
     """Simple message."""
     emetteur = intervenant.Contact()
     destinataire = intervenant.Intervenant()
     scenario = Scenario(emetteur=emetteur, destinataire=destinataire)
     msg = Message(scenario=scenario, strict=False)
     self.assertEqual(msg.scenario, scenario)
Пример #6
0
 def test_error_04(self):
     """Simulations error."""
     emetteur = intervenant.Contact()
     destinataire = intervenant.Intervenant()
     scenario = Scenario(emetteur=emetteur, destinataire=destinataire)
     self.assertRaises(
         TypeError,
         Message,
         **{'scenario': scenario, 'simulations': 'simulations'}
     )
Пример #7
0
 def test_base_01(self):
     """Base case scenario."""
     emetteur = intervenant.Contact()
     destinataire = intervenant.Intervenant()
     sce = Scenario(emetteur=emetteur, destinataire=destinataire)
     self.assertEqual(
         (sce.code, sce.version, sce.nom,
          sce.emetteur, sce.destinataire),
         ('hydrometrie', '1.1', 'Echange de données hydrométriques',
          emetteur, destinataire)
     )
Пример #8
0
 def test_base_02(self):
     """Base Contact."""
     code = 99
     nom = 'Toto'
     prenom = 'Robert'
     civilite = 3
     i = intervenant.Intervenant(code=5)
     c = intervenant.Contact(code=code,
                             nom=nom,
                             prenom=prenom,
                             civilite=civilite,
                             intervenant=i)
     self.assertEqual((c.code, c.nom, c.prenom, c.civilite, c.intervenant),
                      (code, nom, prenom, civilite, i))
Пример #9
0
def _scenario_from_element(element):
    """Return a xml.Scenario from a <Scenario> element."""
    if element is not None:
        return Scenario(
            emetteur=_intervenant.Contact(
                code=_value(element.find('Emetteur'), 'CdContact'),
                intervenant=_intervenant.Intervenant(
                    _value(element.find('Emetteur'), 'CdIntervenant')
                )
            ),
            destinataire=_intervenant.Intervenant(
                code=_value(element.find('Destinataire'), 'CdIntervenant'),
            ),
            dtprod=_value(element, 'DateHeureCreationFichier', _UTC)
        )
Пример #10
0
 def test_error_03(self):
     """Dtprod error."""
     emetteur = intervenant.Contact()
     destinataire = intervenant.Intervenant()
     Scenario(emetteur=emetteur, destinataire=destinataire, dtprod=None)
     self.assertRaises(
         TypeError,
         Scenario,
         **{'emetteur': emetteur, 'destinataire': destinataire, 'dtprod': {}}
     )
     self.assertRaises(
         ValueError,
         Scenario,
         **{'emetteur': emetteur, 'destinataire': destinataire, 'dtprod': 'ff'}
     )
Пример #11
0
 def test_error_02(self):
     """Destinataire error."""
     emetteur = intervenant.Contact()
     destinataire = intervenant.Intervenant()
     Scenario(emetteur=emetteur, destinataire=destinataire)
     self.assertRaises(
         TypeError,
         Scenario,
         **{'emetteur': emetteur, 'destinataire': None}
     )
     self.assertRaises(
         TypeError,
         Scenario,
         **{'emetteur': emetteur, 'destinataire': 'destinataire'}
     )
Пример #12
0
 def test_base_05(self):
     """SANDRE Intervenant."""
     code = 123
     origine = 'SANDRE'
     nom = 'Service Central de la Pluie'
     mnemo = 'SCHAPI'
     contacts = [intervenant.Contact()]
     it = intervenant.Intervenant(code=code,
                                  origine='A',
                                  nom=nom,
                                  mnemo=mnemo,
                                  contacts=contacts[0])
     self.assertEqual((it.code, it.origine, it.nom, it.mnemo, it.contacts),
                      (code, origine, nom, mnemo, contacts))
     for ct in it.contacts:
         self.assertEqual(ct.intervenant, it)
     it.code = 12345678901234
     it.origine = 'SIRET'
     it.contacts = None
Пример #13
0
 def test_str_01(self):
     """Test __str__ method."""
     emetteur = intervenant.Contact()
     destinataire = intervenant.Intervenant()
     sce = Scenario(emetteur=emetteur, destinataire=destinataire)
     self.assertTrue(sce.__str__().rfind('Message') > -1)
Пример #14
0
 def test_error_03(self):
     """Intervenant error."""
     i = intervenant.Intervenant(code=5)
     intervenant.Contact(intervenant=i)
     self.assertRaises(TypeError, intervenant.Contact, **{'intervenant': 5})
Пример #15
0
 def test_error_02(self):
     """Civilite error."""
     intervenant.Contact(civilite=1)
     self.assertRaises(ValueError, intervenant.Contact, **{'civilite': 0})
Пример #16
0
 def test_error_01(self):
     """Code error."""
     it = intervenant.Contact(code=99)
     self.assertRaises(TypeError, it.__setattr__, *('code', None))
     self.assertRaises(ValueError, intervenant.Contact, **{'code': -1})
     self.assertRaises(ValueError, intervenant.Contact, **{'code': 10000})
Пример #17
0
 def test_str_01(self):
     """Test __str__ method with None values."""
     c = intervenant.Contact()
     self.assertTrue(c.__str__().rfind('Contact') > -1)
Пример #18
0
    def export_xml(self, configs, repertoire):
        u"""exporte les sorties de modèles choisies au format XML
        Pour l'instant GRP seulement, en Q et H
        
        Paramètres :
            - configs liste ou tuple de tuples (station, scénario)
            exemple : [("H6230210","MoyMax"),
                       ("H4130410","MoyMin")]
            - repertoire chemin du répertoire où écrire les fichiers
        
        """
        
        #en-tête
        self.SACN = LbHintervenant.Intervenant(
                code=13000626500016,origine='SIRET'
                )
        contact = LbHintervenant.Contact(
                code=613,
                intervenant=self.SACN
                )       
        xmlScenario = LbHxml.Scenario(
                emetteur=contact,
                destinataire = self.SACN,
                dtprod=dt.utcnow()
                )

        #corps du xml
        xmlSimul = []
        errors = []        
        for config in configs:
            try:                
                xmlSimul += [self.xml_unitaire(
                        station=config[0], 
                        scenario=config[1],
                        QH="Q")[0]]
                if not self.echecCT:
                    xmlSimul += [self.xml_unitaire(
                            station=config[0], 
                            scenario=config[1],
                            QH="H")[0]]                    
            except:
                errors += [config]

        if len(errors) > 0:            
            ptrim(u"""Export XML impossible pour les sorties de modèles :
                """+ "\n".join(str(config) for config in errors)
                )                    
        if len(xmlSimul) == 0:
            ptrim(u"""# Export XML impossible #""")
            return
        
        xmlMsg = LbHxml.Message(
                scenario=xmlScenario,
                simulations = xmlSimul
                )
        nom = "{}_{}.xml".format(
            dt.strftime(self.t_prev, "%y%m%d-%Hh%M"),
            dt.strftime(dt.utcnow(), "%y%m%d-%Hh%M%S")
            )
        chemin = os.path.join(repertoire,nom)        
        xmlMsg.write(chemin, force=True, bdhydro=True)
                # Force : remplace un fichier existant
                # bdhydro : formate le xml dans le format specifique PhYC, 
                # sinon xml_hydrométrie classique

        ptrim(u"""# XML enregistré avec succès #
              {}""".format(chemin))
Пример #19
0
 def test_base_01(self):
     """Empty Contact."""
     c = intervenant.Contact()
     self.assertEqual((c.code, c.nom, c.prenom, c.civilite, c.intervenant),
                      (0, None, None, None, None))
Пример #20
0
 def test_error_04(self):
     """Contacts error."""
     contacts = [intervenant.Contact()]
     intervenant.Intervenant(contacts=contacts)
     self.assertRaises(TypeError, intervenant.Intervenant,
                       **{'contacts': '---'})