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]))
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)
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))
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)
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)
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'} )
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) )
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))
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) )
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'} )
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'} )
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
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)
def test_error_03(self): """Intervenant error.""" i = intervenant.Intervenant(code=5) intervenant.Contact(intervenant=i) self.assertRaises(TypeError, intervenant.Contact, **{'intervenant': 5})
def test_error_02(self): """Civilite error.""" intervenant.Contact(civilite=1) self.assertRaises(ValueError, intervenant.Contact, **{'civilite': 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})
def test_str_01(self): """Test __str__ method with None values.""" c = intervenant.Contact() self.assertTrue(c.__str__().rfind('Contact') > -1)
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))
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))
def test_error_04(self): """Contacts error.""" contacts = [intervenant.Contact()] intervenant.Intervenant(contacts=contacts) self.assertRaises(TypeError, intervenant.Intervenant, **{'contacts': '---'})