from plants.services.card_ocr import parse_card_text # Simulated OCR output matching the Veronicastrum card back _SAMPLE_TEXT = """ ELBURG SMIT G1L-901126 Veronicastrum virg. 'Red Arrows' Virginische Ereprijs, Kandelaber-Ehrenpreis, Culver's root, Grande veronique, Kransveronika VII-VIII 7/m2 120 cm -20 oC Bijenlokker Plant that attracts bees """ def test_scientific_name(): result = parse_card_text(_SAMPLE_TEXT) assert result['scientific_name'] is not None assert 'Veronicastrum' in result['scientific_name'] def test_bloom_months(): result = parse_card_text(_SAMPLE_TEXT) assert result['bloom_months'] == [7, 8] def test_height(): result = parse_card_text(_SAMPLE_TEXT) assert result['max_height_cm'] == 120 def test_frost_hardiness(): result = parse_card_text(_SAMPLE_TEXT) assert result['frost_hardiness_c'] == -20 def test_planting_density(): result = parse_card_text(_SAMPLE_TEXT) assert result['planting_density_m2'] == 7 def test_bee_attractant(): result = parse_card_text(_SAMPLE_TEXT) assert result['bee_attractant'] is True def test_empty_text(): result = parse_card_text('') assert result['scientific_name'] is None assert result['bloom_months'] == [] assert result['max_height_cm'] is None assert result['frost_hardiness_c'] is None assert result['planting_density_m2'] is None assert result['bee_attractant'] is False