def test_species_markup_func(self): eCo = Species.retrieve_or_create( self.session, { "object": "taxon", "ht-rank": "genus", "ht-epithet": u"Maxillaria", "rank": "species", "epithet": u"variabilis", }, create=False, update=False, ) model = Species.retrieve_or_create( self.session, {"object": "taxon", "ht-rank": "genus", "ht-epithet": u"Laelia", "rank": "species", "epithet": u"lobata"}, create=False, update=False, ) first, second = species_markup_func(eCo) self.assertEquals(first, u"<i>Maxillaria</i> <i>variabilis</i>") self.assertEquals(second, u"Orchidaceae -- SomeName, SomeName 2") first, second = species_markup_func(model) self.assertEquals(first, u"<i>Laelia</i> <i>lobata</i>") self.assertEquals(second, u"Orchidaceae")
def test(self): obj = Genus.retrieve_or_create( self.session, {"object": "taxon", "rank": "genus", "epithet": u"Maxillaria"}, create=False, update=False ) self.assertEquals(obj.cites, u"II") obj = Genus.retrieve_or_create( self.session, {"object": "taxon", "rank": "genus", "epithet": u"Laelia"}, create=False, update=False ) self.assertEquals(obj.cites, u"II") obj = Species.retrieve_or_create( self.session, { "object": "taxon", "ht-rank": "genus", "ht-epithet": u"Paphiopedilum", "rank": "species", "epithet": u"adductum", }, create=False, update=False, ) self.assertEquals(obj.cites, u"I") obj = Species.retrieve_or_create( self.session, {"object": "taxon", "ht-rank": "genus", "ht-epithet": u"Laelia", "rank": "species", "epithet": u"lobata"}, create=False, update=False, ) self.assertEquals(obj.cites, u"I") obj = Species.retrieve_or_create( self.session, { "object": "taxon", "ht-rank": "genus", "ht-epithet": u"Laelia", "rank": "species", "epithet": u"grandiflora", }, create=False, update=False, ) self.assertEquals(obj.cites, u"II")
def test_cantinsertsametwice(self): "while binomial name in view matches database item, warn user" raise SkipTest("Not Implemented") # presenter uses view internals from species_editor import SpeciesEditorPresenter model = Species.retrieve_or_create( self.session, {"object": "taxon", "ht-rank": "genus", "ht-epithet": u"Laelia", "rank": "species", "epithet": u"lobata"}, create=False, update=False, ) presenter = SpeciesEditorPresenter(model, MockView()) presenter.on_text_entry_changed("sp_species_entry", "grandiflora")
def test(self): obj = Species.retrieve_or_create( self.session, { "object": "taxon", "ht-rank": "genus", "ht-epithet": u"Encyclia", "rank": "species", "epithet": u"fragrans", }, create=False, update=False, ) self.assertEquals(obj.conservation, u"LC")
def test_canreeditobject(self): species = Species.retrieve_or_create( self.session, { "object": "taxon", "ht-rank": "genus", "ht-epithet": u"Paphiopedilum", "rank": "species", "epithet": u"adductum", }, create=False, update=False, ) presenter = GenericModelViewPresenterEditor(species, MockView()) species.author = u"wrong" presenter.commit_changes() species.author = u"Asher" presenter.commit_changes()
def test_default_vernacular_name(self): """ Test the Species.default_vernacular_name property """ family = Family(family=u"family") genus = Genus(family=family, genus=u"genus") sp = Species(genus=genus, sp=u"sp") vn = VernacularName(name=u"name") sp.vernacular_names.append(vn) self.session.add_all([family, genus, sp, vn]) self.session.commit() # test that setting the default vernacular names default = VernacularName(name=u"default") sp.default_vernacular_name = default self.session.commit() self.assert_(vn in sp.vernacular_names) self.assert_(sp.default_vernacular_name == default) # test that set_attr work on default vernacular name default = VernacularName(name=u"default") setattr(sp, "default_vernacular_name", default) self.session.commit() self.assert_(vn in sp.vernacular_names) self.assert_(sp.default_vernacular_name == default) # test that if you set the default_vernacular_name on a # species then it automatically adds it to vernacular_names default = VernacularName(name=u"default") sp.default_vernacular_name = default self.session.commit() self.assert_(vn in sp.vernacular_names) self.assert_(sp.default_vernacular_name == default) # test that removing a vernacular name removes it from # default_vernacular_name, this test also effectively tests VNList dvid = sp._default_vernacular_name.id sp.vernacular_names.remove(default) self.session.commit() self.assertEquals(sp.default_vernacular_name, None) q = self.session.query(DefaultVernacularName) self.assertRaises(NoResultFound, q.filter_by(species_id=sp.id).one) self.assertRaises(NoResultFound, q.filter_by(id=dvid).one) # test that setting default_vernacular_name to None # removes the name properly and deletes any orphaned objects sp.vernacular_names.append(vn) sp.default_vernacular_name = vn self.session.commit() dvid = sp._default_vernacular_name.id sp.default_vernacular_name = None self.session.commit() q = self.session.query(DefaultVernacularName) self.assertRaises(NoResultFound, q.filter_by(species_id=sp.id).one) self.assertRaises(NoResultFound, q.filter_by(id=dvid).one) # test that calling __del__ on a default vernacular name removes it sp.default_vernacular_name = vn self.session.commit() dvid = sp._default_vernacular_name.id del sp.default_vernacular_name self.session.commit() self.assertEquals(sp.default_vernacular_name, None) q = self.session.query(DefaultVernacularName) self.assertRaises(NoResultFound, q.filter_by(species_id=sp.id).one) self.assertRaises(NoResultFound, q.filter_by(id=dvid).one) # test for regression in bug Launchpad #123286 vn1 = VernacularName(name=u"vn1") vn2 = VernacularName(name=u"vn2") sp.default_vernacular_name = vn1 sp.default_vernacular_name = vn2 self.session.commit()
def get_sp_str(id, **kwargs): return Species.str(self.session.query(Species).get(id), **kwargs)
def get_FullScientificNameString(self, authors=True): s = Species.str(self.species, authors=authors, markup=False) return utils.xml_safe(s)
def get_FullScientificNameString(self, authors=True): s = Species.str(self.species, authors=authors, markup=False) return xml_safe(s)