Example #1
0
 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")
Example #2
0
 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")
Example #3
0
    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")
Example #4
0
 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")
Example #5
0
 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()
Example #6
0
    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()
Example #7
0
 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)
Example #9
0
 def get_FullScientificNameString(self, authors=True):
     s = Species.str(self.species, authors=authors, markup=False)
     return xml_safe(s)