summaryrefslogblamecommitdiffstats
path: root/engagements/tests/test_models.py
blob: 70ae31a478adcb56d85d98d3b27c3511d9142dfe (plain) (tree)
1
2
3
4
5
6
7
8
9
             
 
                                                                  

                                               

                                  
 
               



                              




                                             













                                                                                                               








                                                                 
                                                        


                                                              
import pytest

from engagements.models import EngagementStrategy, RegulatoryCycle
from engagements.utils import populate_database

pytestmark = pytest.mark.django_db


@pytest.fixture
def data():
    return populate_database()


def test_check_all_dcs(data):
    dscs = data.get("sub_instruments")
    assert dscs[0].title == "DSC 1 - Title 1"


def test_effort_by_type(data):
    e = data["engagements"][0]
    total_planning = sum([x.effort_total_planned_hours() for x in e.effort.filter(effort_type="PLANNING")])
    total_travel = sum([x.effort_total_planned_hours() for x in e.effort.filter(effort_type="TRAVEL")])
    total_regulation = sum([x.effort_total_planned_hours() for x in e.effort.filter(effort_type="REGULATION")])
    assert total_planning == 4.25
    assert total_regulation == 0
    assert total_travel == 1


@pytest.mark.skip(reason="Not implemented until I get my head round effort calculations")
def test_total_effort_for_engagement(data):
    e = data["engagements"][0]
    assert e.total_effort() == 5.25


def test_regulatory_cycle_model(regulatory_cycles):
    rc = RegulatoryCycle.objects.first()
    rc2023 = RegulatoryCycle.objects.get(start_date="2023-01-01")
    assert str(rc) == "Regulatory Cycle: 2024"
    assert str(rc2023) == "Regulatory Cycle: 2023"


def test_engagement_strategy_model(engagement_strategy):
    es1 = EngagementStrategy.objects.first()
    assert es1.organisation.name == "MOD"
    assert str(es1) == "Engagement Strategy (2022-2024) - MOD"