bloombase/plants/tests/test_models.py

50 lines
1.3 KiB
Python

import pytest
from plants.models import Species, Plant, PruningLog
from datetime import date
@pytest.mark.django_db
def test_species_str():
s = Species.objects.create(common_name='Rose')
assert str(s) == 'Rose'
@pytest.mark.django_db
def test_plant_str():
p = Plant.objects.create(name='Kitchen Fern', location='Kitchen')
assert str(p) == 'Kitchen Fern'
@pytest.mark.django_db
def test_plant_species_nullable():
p = Plant.objects.create(name='Unknown plant', location='Hallway')
assert p.species is None
@pytest.mark.django_db
def test_pruning_log_str():
p = Plant.objects.create(name='Rose', location='Garden')
log = PruningLog.objects.create(plant=p, pruned_on=date(2026, 5, 1))
assert 'Rose' in str(log)
assert '2026-05-01' in str(log)
@pytest.mark.django_db
def test_plant_pruning_months_default():
p = Plant.objects.create(name='Fern', location='Office')
assert p.pruning_months == []
@pytest.mark.django_db
def test_species_pruning_months_default():
s = Species.objects.create(common_name='Oak')
assert s.pruning_months == []
@pytest.mark.django_db
def test_delete_species_nulls_plant_species():
s = Species.objects.create(common_name='Rose')
p = Plant.objects.create(name='Garden rose', location='Garden', species=s)
s.delete()
p.refresh_from_db()
assert p.species is None