Example #1
0
 def test_queryable_dicts_to_json_bad_args(self):
     """Raise a TypeError if any objects lack the lookup_dict method."""
     with pytest.raises(TypeError):
         queryable_dicts_to_json((1, 2, 3))
     cn1 = CommonName(name='Foxglove')
     cn1.index = Index(name='Perennial')
     cn2 = CommonName(name='Coleus')
     cn2.index = Index(name='Annual')
     idx = Index(name='Has no lookup_dict')
     with pytest.raises(TypeError):
         queryable_dicts_to_json((cn1, cn2, idx))
Example #2
0
    def test_queryable_dicts_to_json(self):
        """Generate a JSON string for looking up Grows With cns/cvs.

        It can take either, as both have the queryable_dict method.
        """
        gwcn1 = CommonName(name='Foxglove')
        gwcn1.index = Index(name='Perennial')
        assert queryable_dicts_to_json([gwcn1]) == \
            json.dumps((gwcn1.queryable_dict,))
        gwcn2 = CommonName(name='Butterfly Weed')
        gwcn2.index = Index(name='Perennial')
        assert queryable_dicts_to_json([gwcn1, gwcn2]) == \
            json.dumps((gwcn1.queryable_dict, gwcn2.queryable_dict))
        gwcv1 = Cultivar(name='Soulmate')
        gwcv1.common_name = CommonName(name='Butterfly Weed')
        gwcv1.common_name.index = Index(name='Perennial')
        assert queryable_dicts_to_json([gwcv1]) == \
            json.dumps((gwcv1.queryable_dict,))
        gwcv2 = Cultivar(name='Petra')
        gwcv2.common_name = CommonName(name='Foxglove')
        gwcv2.common_name.index = Index(name='Perennial')
        gwcv2.section = Section(name='Polkadot')
        assert queryable_dicts_to_json([gwcv1, gwcv2]) == \
            json.dumps((gwcv1.queryable_dict, gwcv2.queryable_dict))
Example #3
0
 def test_add_one_no_optionals(self):
     """Add a BotanicalName object to Botanical Names sheet."""
     messages = StringIO()
     wb = Workbook()
     ws = wb.active
     bnws = BotanicalNamesWorksheet(ws)
     bnws.setup()
     bn = BotanicalName(name='Innagada davida')
     cn = CommonName(name='Rock')
     cn.index = Index(name='Music')
     bn.common_names = [cn]
     bnws.add_one(bn, stream=messages)
     assert bnws.cell(
         2, bnws.cols['Common Names (JSON)']
     ).value == queryable_dicts_to_json([cn])
     assert bnws.cell(
         2, bnws.cols['Botanical Name']
     ).value == 'Innagada davida'
     assert bnws.cell(2, bnws.cols['Synonyms']).value is None
     messages.seek(0)
     msgs = messages.read()
     assert ('Adding data from <BotanicalName "Innagada davida"> to row '
             '#2 of botanical names worksheet.') in msgs