def test_can_grab_existing_families(self): all_families = self.session.query(Family).all() orc = Family.retrieve_or_create(self.session, {"rank": "family", "epithet": "Orchidaceae"}) leg = Family.retrieve_or_create(self.session, {"rank": "family", "epithet": "Leguminosae"}) pol = Family.retrieve_or_create(self.session, {"rank": "family", "epithet": "Polypodiaceae"}) sol = Family.retrieve_or_create(self.session, {"rank": "family", "epithet": "Solanaceae"}) self.assertEquals(set(all_families), set([orc, pol, leg, sol]))
def test_where_can_object_be_found_after_commit(self): fab = Family.retrieve_or_create(self.session, {"rank": "family", "epithet": "Fabaceae"}) ## after commit it's in database. self.session.commit() other_session = db.Session() all_families = other_session.query(Family).all() fab = Family.retrieve_or_create(other_session, {"rank": "family", "epithet": "Fabaceae"}) self.assertTrue(fab in all_families)
def test_where_can_object_be_found_before_commit(self): # disabled raise SkipTest("Not Implemented") fab = Family.retrieve_or_create(self.session, {"rank": "family", "epithet": "Fabaceae"}) # created in a session, it's not in other sessions other_session = db.Session() db_families = other_session.query(Family).all() fab = Family.retrieve_or_create(other_session, {"rank": "family", "epithet": "Fabaceae"}) self.assertFalse(fab in db_families) # fails, why?
def test_family_nocreate_noupdateeq_existing(self): ## retrieve same object, we only give the keys obj = Family.retrieve_or_create( self.session, {"object": "taxon", "rank": "familia", "epithet": "Leguminosae"}, create=False, update=False ) self.assertTrue(obj is not None) self.assertEquals(obj.qualifier, "s. str.")
def test_family_nocreate_updatediff_existing(self): ## update object in self.session obj = Family.retrieve_or_create( self.session, {"object": "taxon", "rank": "familia", "epithet": "Leguminosae", "qualifier": "s. lat."}, create=False, update=True, ) self.assertEquals(obj.qualifier, "s. lat.")
def test_can_create_family(self): all_families = self.session.query(Family).all() fab = Family.retrieve_or_create(self.session, {"rank": "family", "epithet": "Fabaceae"}) ## it's in the session, it wasn't there before. self.assertTrue(fab in self.session) self.assertFalse(fab in all_families) ## according to the session, it is in the database ses_families = self.session.query(Family).all() self.assertTrue(fab in ses_families)
def test_can_grab_existing_genera(self): orc = Family.retrieve_or_create(self.session, {"rank": "family", "epithet": "Orchidaceae"}) all_genera_orc = self.session.query(Genus).filter(Genus.family == orc).all() mxl = Genus.retrieve_or_create( self.session, {"ht-rank": "family", "ht-epithet": "Orchidaceae", "rank": "genus", "epithet": "Maxillaria"} ) enc = Genus.retrieve_or_create( self.session, {"ht-rank": "family", "ht-epithet": "Orchidaceae", "rank": "genus", "epithet": "Encyclia"} ) self.assertTrue(mxl in set(all_genera_orc)) self.assertTrue(enc in set(all_genera_orc))
def test_family_nocreate_noupdate_noexisting(self): # do not create if not existing obj = Family.retrieve_or_create( self.session, {"object": "taxon", "rank": "familia", "epithet": "Arecaceae"}, create=False ) self.assertEquals(obj, None)
def test_grabbing_same_params_same_output_new(self): fab1 = Family.retrieve_or_create(self.session, {"rank": "family", "epithet": "Fabaceae"}) fab2 = Family.retrieve_or_create(self.session, {"rank": "family", "epithet": "Fabaceae"}) self.assertTrue(fab1 is fab2)
def test_grabbing_same_params_same_output_existing(self): orc1 = Family.retrieve_or_create(self.session, {"rank": "family", "epithet": "Orchidaceae"}) orc2 = Family.retrieve_or_create(self.session, {"rank": "family", "epithet": "Orchidaceae"}) self.assertTrue(orc1 is orc2)