Beispiel #1
0
 def test_strip_taxonomic_authority_infraspecific_epithet_later(self):
     im = importer.Importer()
     name = im._strip_taxonomic_authority( \
         'Actaea spicata L. ssp. rubra (Ait.) Hulten')
     self.assertEqual('Actaea spicata ssp. rubra', name)
     # Test another connector, with the epithet coming even later.
     im = importer.Importer()
     name = im._strip_taxonomic_authority( \
         'Gerardia paupercula (Gray) Britt. var. typica Pennell')
     self.assertEqual('Gerardia paupercula var. typica', name)
Beispiel #2
0
 def test_get_character_friendly_name_not_defined(self):
     im = importer.Importer()
     friendly_name = im._get_character_friendly_name('plant_habit', '')
     self.assertEqual('Plant habit', friendly_name)
     friendly_name = im._get_character_friendly_name(
         'leaf_disposition', None)
     self.assertEqual('Leaf disposition', friendly_name)
Beispiel #3
0
 def test_clean_up_html_font_tags(self):
     im = importer.Importer()
     html = ('<div><font color=""#333333"">non-grasses have very narrow '
             'leaves, but produce showy flowers</font></div>')
     expected = ('<div>non-grasses have very narrow leaves, but produce '
                 'showy flowers</div>')
     self.assertEquals(expected, im._clean_up_html(html))
Beispiel #4
0
 def test_has_unexpected_delimiter(self):
     im = importer.Importer()
     text = 'This, has, no, unexpected, delimiter'
     self.assertFalse(
         im._has_unexpected_delimiter(text, unexpected_delimiter='|'))
     text = 'This|has|an|unexpected|delimiter'
     self.assertTrue(
         im._has_unexpected_delimiter(text, unexpected_delimiter='|'))
Beispiel #5
0
 def test_strip_taxonomic_authority_subspecies(self):
     im = importer.Importer()
     name = im._strip_taxonomic_authority( \
         'Lysimachia lanceolata subsp. hybrida (Michx.) J.D. Ray')
     self.assertEqual('Lysimachia lanceolata subsp. hybrida', name)
     # Test alternate connector.
     name = im._strip_taxonomic_authority( \
         'Lysimachia lanceolata ssp. hybrida (Michx.) J.D. Ray')
     self.assertEqual('Lysimachia lanceolata ssp. hybrida', name)
Beispiel #6
0
 def test_strip_taxonomic_authority_missing_space_after_epithet(self):
     im = importer.Importer()
     name_missing_space = 'Lycopodium annotinum var. montanumTuckerman'
     name = im._strip_taxonomic_authority(name_missing_space)
     self.assertEqual('Lycopodium annotinum var. montanum', name)
     # Sometimes there are parentheses instead of a capital letter.
     name_missing_space = 'Huperzia selago ssp. appressa(Desv.)'
     name = im._strip_taxonomic_authority(name_missing_space)
     self.assertEqual('Huperzia selago ssp. appressa', name)
Beispiel #7
0
 def test_import_characters(self):
     im = importer.Importer()
     im.import_characters(
         self.db, importer.PlainFile('.', testdata('characters.csv')))
     f = open(testdata('characters.csv'))
     content = f.read()
     f.close()
     expected = len(content.splitlines()) - min(content.count('_min'),
                                                content.count('_max')) - 1
     self.assertEquals(len(models.Character.objects.all()), expected)
Beispiel #8
0
 def test_strip_taxonomic_authority_unexpected_characters(self):
     im = importer.Importer()
     # This name has some undesirable character data in it (showing up as
     # a dagger here), as copied from the CSV. It is decoded here using
     # Windows-1252 like the importer does when reading CSV files (see
     # CSVReader read method override in importer.py).
     name_with_unexpected_characters = \
         'Cornus amomum var. schuetzeana†(C.A. Mey.) Rickett'
     name = im._strip_taxonomic_authority(name_with_unexpected_characters)
     self.assertEqual(b'Cornus amomum var. schuetzeana', name)
Beispiel #9
0
 def setUp(self):
     self.db = bulkup.Database(connection)
     im = importer.Importer()
     im.import_partner_sites(self.db)
     im.import_pile_groups(
         self.db, importer.PlainFile('.', testdata('pile_group_info.csv')))
     im.import_piles(self.db,
                     importer.PlainFile('.', testdata('pile_info.csv')))
     im.import_taxa(self.db, importer.PlainFile('.', testdata('taxa.csv')))
     im.import_distributions(
         importer.PlainFile('.', testdata('dist_north_america.csv')))
Beispiel #10
0
 def test_strip_taxonomic_authority_forma(self):
     im = importer.Importer()
     name = im._strip_taxonomic_authority( \
         ('Acanthocalycium spiniflorum f. klimpelianum (Weidlich & '
          'Werderm.) Donald'))
     self.assertEqual('Acanthocalycium spiniflorum f. klimpelianum', name)
     # Test alternate connector.
     name = im._strip_taxonomic_authority( \
         ('Acanthocalycium spiniflorum forma klimpelianum (Weidlich & '
          'Werderm.) Donald'))
     self.assertEqual('Acanthocalycium spiniflorum forma klimpelianum',
                      name)
Beispiel #11
0
 def test_import_taxons(self):
     im = importer.Importer()
     im.import_partner_sites(self.db)
     im.import_pile_groups(
         self.db, importer.PlainFile('.', testdata('pile_group_info.csv')))
     im.import_piles(self.db,
                     importer.PlainFile('.', testdata('pile_info.csv')))
     im.import_wetland_indicators(
         self.db, importer.PlainFile('.',
                                     testdata('wetland_indicators.csv')))
     im.import_taxa(self.db, importer.PlainFile('.', testdata('taxa.csv')))
     self.assertEquals(len(models.Taxon.objects.all()), 3522)
Beispiel #12
0
def setup_integration(test):
    pilegroup1 = models.PileGroup(name='pilegroup1')
    pilegroup1.save()

    pile1 = models.Pile(name='Carex')
    pile1.pilegroup = pilegroup1
    pile1.save()

    im = importer.Importer()

    im._import_piles(testdata('pile_info.csv'), None)
    im._import_taxa(testdata('taxa.csv'))
    im._import_characters(testdata('characters.csv'))
    im._import_character_values(testdata('character_values.csv'))
    im._import_taxon_character_values(testdata('pile_lycophytes.csv'))
    im._import_taxon_character_values(
        testdata('pile_non_orchid_monocots_1.csv'))
    im._import_taxon_character_values(
        testdata('pile_non_orchid_monocots_2.csv'))
    im._import_taxon_character_values(
        testdata('pile_non_orchid_monocots_3.csv'))
Beispiel #13
0
 def test_strip_taxonomic_authority_species_extra_punctuation(self):
     im = importer.Importer()
     name = im._strip_taxonomic_authority( \
         'Actaea alba, of authors not (L.) P. Mill.')
     self.assertEqual('Actaea alba', name)
Beispiel #14
0
 def test_strip_taxonomic_authority_no_epithet_after_connector(self):
     im = importer.Importer()
     name = im._strip_taxonomic_authority('Betula lutea Michx. f.')
     self.assertEqual('Betula lutea', name)
Beispiel #15
0
 def test_clean_up_html_non_breaking_spaces(self):
     im = importer.Importer()
     self.assertEquals(
         'Remove non-breaking spaces. Please.',
         im._clean_up_html('Remove non-breaking spaces. &nbsp;Please.'))
Beispiel #16
0
 def test_create_character_name(self):
     im = importer.Importer()
     name = im._create_character_name('stamen_morphology')
     self.assertEqual('Stamen morphology', name)
Beispiel #17
0
 def test_strip_taxonomic_authority_skip_consecutive_connector(self):
     im = importer.Importer()
     name = im._strip_taxonomic_authority( \
         'Betula lutea Michx. f. var. fallax Fassett')
     self.assertEqual('Betula lutea var. fallax', name)
Beispiel #18
0
 def test_strip_taxonomic_authority_subforma(self):
     im = importer.Importer()
     name = im._strip_taxonomic_authority( \
         'Saxifraga aizoon subf. surculosa Engl. & Irmsch.')
     self.assertEqual('Saxifraga aizoon subf. surculosa', name)
Beispiel #19
0
 def test_get_character_friendly_name(self):
     im = importer.Importer()
     friendly_name = im._get_character_friendly_name( \
         'spike_number_per_stem', 'Number of spikes')
     self.assertEqual('Number of spikes', friendly_name)
Beispiel #20
0
 def test_strip_taxonomic_authority_subvariety(self):
     im = importer.Importer()
     name = im._strip_taxonomic_authority( \
         'Potentilla anserina subvar. minima (Peterm. ex Th.Wolf) Th.Wolf')
     self.assertEqual('Potentilla anserina subvar. minima', name)
Beispiel #21
0
 def test_strip_taxonomic_authority_variety(self):
     im = importer.Importer()
     name = im._strip_taxonomic_authority( \
         'Vitis labrusca var. subedentata Fern.')
     self.assertEqual('Vitis labrusca var. subedentata', name)
Beispiel #22
0
 def test_strip_taxonomic_authority_species(self):
     im = importer.Importer()
     name = im._strip_taxonomic_authority('Viburnum cassanoides L.')
     self.assertEqual('Viburnum cassanoides', name)