Skip to content
Snippets Groups Projects
Commit 14325fe2 authored by Todd Dembrey's avatar Todd Dembrey
Browse files

Relate phases to stage

parent a49f7500
No related branches found
No related tags found
No related merge requests found
from django.forms import Form from django.forms import Form
import factory import factory
from opentech.apply.workflow import Stage, Workflow from opentech.apply.workflow import Phase, Stage, Workflow
class PhaseFactory(factory.Factory):
class Meta:
model = Phase
name = factory.Faker('word')
class StageFactory(factory.Factory): class StageFactory(factory.Factory):
class Meta: class Meta:
model = Stage model = Stage
inline_args = ('name', 'form', 'phases',)
class Params:
num_phases = factory.Faker('random_int', min=1, max=3)
name = factory.Faker('word') name = factory.Faker('word')
form = factory.LazyFunction(Form) form = factory.LazyFunction(Form)
phases = factory.LazyAttribute(lambda o: [PhaseFactory() for _ in range(o.num_phases)])
class WorkflowFactory(factory.Factory): class WorkflowFactory(factory.Factory):
......
...@@ -3,7 +3,7 @@ from django.forms import Form ...@@ -3,7 +3,7 @@ from django.forms import Form
from opentech.apply.workflow import Phase, Stage, Workflow from opentech.apply.workflow import Phase, Stage, Workflow
from .factories import StageFactory, WorkflowFactory from .factories import PhaseFactory, StageFactory, WorkflowFactory
class TestWorkflowCreation(SimpleTestCase): class TestWorkflowCreation(SimpleTestCase):
...@@ -37,9 +37,11 @@ class TestStageCreation(SimpleTestCase): ...@@ -37,9 +37,11 @@ class TestStageCreation(SimpleTestCase):
def test_can_create_stage(self): def test_can_create_stage(self):
name = 'the_stage' name = 'the_stage'
form = Form() form = Form()
stage = Stage(name, form) phases = PhaseFactory.create_batch(2)
stage = Stage(name, form, phases)
self.assertEqual(stage.name, name) self.assertEqual(stage.name, name)
self.assertEqual(stage.form, form) self.assertEqual(stage.form, form)
self.assertEqual(stage.phases, phases)
class TestPhaseCreation(SimpleTestCase): class TestPhaseCreation(SimpleTestCase):
......
...@@ -26,9 +26,10 @@ class Workflow(Iterable['Stage']): ...@@ -26,9 +26,10 @@ class Workflow(Iterable['Stage']):
class Stage: class Stage:
def __init__(self, name: str, form: Form) -> None: def __init__(self, name: str, form: Form, phases: Sequence['Phase']) -> None:
self.name = name self.name = name
self.form = form self.form = form
self.phases = phases
class Phase: class Phase:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment