def test_init(self, m_sfc): m_sfc.return_value = [(1, "One"), (2, "Two"), (3, "Three")] cn1 = CommonName(name="One") cn1.id = 1 cn2 = CommonName(name="Two") cn2.id = 2 obj = BotanicalName(name="Bot nam") obj.common_names = [cn1, cn2] ebnf = EditBotanicalNameForm(obj=obj) assert ebnf.common_names.data == [1, 2]
def test_add_one_with_synonyms(self): """Add a BotanicalName with synonyms to Botanical Names sheet.""" 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] bn.synonyms_string = 'Iron butterfly' bnws.add_one(bn) assert bnws.cell(2, bnws.cols['Synonyms']).value == 'Iron butterfly'
def test_validate_botanical_name_id(self, m_bnq): """Raise error if selected BN is not in selected CN.""" bn = BotanicalName("Digitalis über alles") cn1 = CommonName(name="Fauxglove") cn1.id = 1 cn2 = CommonName(name="Spuriousglove") cn2.id = 2 bn.common_names = [cn1, cn2] m_bnq.return_value = bn self = mock.MagicMock() self.common_name_id.data = 3 field = mock.MagicMock() with pytest.raises(ValidationError): EditCultivarForm.validate_botanical_name_id(self=self, field=field)
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