From 513619c7e7901d0db715469409ca9eaf965df12a Mon Sep 17 00:00:00 2001 From: Johannes Hoppe Date: Sun, 2 Dec 2018 12:50:33 +0100 Subject: [PATCH] Refactor override naming --- joeflow/models.py | 12 ++++++------ joeflow/views.py | 6 +++--- .../simpleprocess_instance_obsolete.dot | 16 ++++++++++++++++ ...dot => simpleprocess_instance_override.dot} | 8 ++++---- tests/test_models.py | 18 +++++++++++++++--- 5 files changed, 44 insertions(+), 16 deletions(-) create mode 100644 tests/fixtures/simpleprocess_instance_obsolete.dot rename tests/fixtures/{simpleprocess_instance_manual_override.dot => simpleprocess_instance_override.dot} (76%) diff --git a/joeflow/models.py b/joeflow/models.py index a99fb99..7782f82 100644 --- a/joeflow/models.py +++ b/joeflow/models.py @@ -105,7 +105,7 @@ class Meta: including start end end not of an edge. """ - override_view = views.ManualOverrideView + override_view = views.OverrideView detail_view = views.ProcessDetailView @classmethod @@ -247,17 +247,17 @@ def get_instance_graph(self): style += ', bold' graph.node(task.name, href=href, style=style, color='black', fontcolor='black') - for task in self.task_set.filter(name='manual_override').prefetch_related( + for task in self.task_set.filter(name='override').prefetch_related( 'parent_task_set', 'child_task_set' ): - label = 'manual_override_%s' % task.pk + label = 'override_%s' % task.pk graph.node(label, style='filled, rounded, dashed') for parent in task.parent_task_set.all(): - graph.edge(parent.name, 'manual_override_%s' % task.pk, style='dashed') + graph.edge(parent.name, 'override_%s' % task.pk, style='dashed') for child in task.child_task_set.all(): - graph.edge('manual_override_%s' % task.pk, child.name, style='dashed') + graph.edge('override_%s' % task.pk, child.name, style='dashed') - for task in self.task_set.exclude(name__in=names).exclude(name='manual_override'): + for task in self.task_set.exclude(name__in=names).exclude(name='override'): style = 'filled, dashed' if task.type == tasks.HUMAN: style += ', rounded' diff --git a/joeflow/views.py b/joeflow/views.py index 53c380f..e704740 100644 --- a/joeflow/views.py +++ b/joeflow/views.py @@ -66,9 +66,9 @@ class ProcessDetailView(ProcessTemplateNameViewMixin, generic.DetailView): pass -class ManualOverrideView(PermissionRequiredMixin, RevisionMixin, ProcessTemplateNameViewMixin, generic.UpdateView): +class OverrideView(PermissionRequiredMixin, RevisionMixin, ProcessTemplateNameViewMixin, generic.UpdateView): permission_required = 'override' - name = 'manual_override' + name = 'override' fields = '__all__' @staticmethod @@ -100,7 +100,7 @@ def form_valid(self, form): for task in active_tasks: task.finish() override_task = self.object.task_set.create( - name='manual_override', + name='override', ) override_task.parent_task_set.set(active_tasks) override_task.finish() diff --git a/tests/fixtures/simpleprocess_instance_obsolete.dot b/tests/fixtures/simpleprocess_instance_obsolete.dot new file mode 100644 index 0000000..7336485 --- /dev/null +++ b/tests/fixtures/simpleprocess_instance_obsolete.dot @@ -0,0 +1,16 @@ +digraph { + graph [rankdir=LR] + node [fillcolor=white fontname="sans-serif" shape=rect style=filled] + "start method" [color="#888888" fontcolor="#888888" style=filled] + end [color="#888888" fontcolor="#888888" style=filled] + "start view" [color="#888888" fontcolor="#888888" style="filled, rounded"] + "save the princess" [color="#888888" fontcolor="#888888" style="filled, rounded"] + "start view" -> "save the princess" + "start method" -> "save the princess" + "save the princess" -> end + end [color=black fontcolor=black style="filled, bold"] + "start method" [color=black fontcolor=black style="filled, bold"] + obsolete [color=black fontcolor=black style="filled, dashed, bold"] + "start method" -> obsolete [style=dashed] + obsolete -> end [style=dashed] +} diff --git a/tests/fixtures/simpleprocess_instance_manual_override.dot b/tests/fixtures/simpleprocess_instance_override.dot similarity index 76% rename from tests/fixtures/simpleprocess_instance_manual_override.dot rename to tests/fixtures/simpleprocess_instance_override.dot index bcf7f5f..02d2278 100644 --- a/tests/fixtures/simpleprocess_instance_manual_override.dot +++ b/tests/fixtures/simpleprocess_instance_override.dot @@ -11,8 +11,8 @@ digraph { end [color=black fontcolor=black style=filled] "start method" [color=black fontcolor=black style=filled] "save the princess" [color=black fontcolor=black style="filled, rounded"] - "start method" -> "manual override 3" [style=dashed] - "manual override 3" [style="filled, rounded, dashed"] - "save the princess" -> "manual override 3" [style=dashed] - "manual override 3" -> end [style=dashed] + "start method" -> "override 3" [style=dashed] + "override 3" [style="filled, rounded, dashed"] + "save the princess" -> "override 3" [style=dashed] + "override 3" -> end [style=dashed] } diff --git a/tests/test_models.py b/tests/test_models.py index 66c7c35..38d2414 100644 --- a/tests/test_models.py +++ b/tests/test_models.py @@ -166,14 +166,26 @@ def test_get_instance_graph(self, db, fixturedir): expected_graph = fp.read().splitlines() assert set(graph.body) == set(expected_graph[1:-1]) - def test_get_instance_graph__manual_override(self, db, fixturedir, admin_client): + def test_get_instance_graph__override(self, db, fixturedir, admin_client): process = models.SimpleProcess.start_method() url = reverse('simpleprocess:override', args=[process.pk]) response = admin_client.post(url, data={'next_tasks': ['end']}) assert response.status_code == 302 - assert process.task_set.get(name='manual_override') + assert process.task_set.get(name='override') graph = process.get_instance_graph() - with open(str(fixturedir / 'simpleprocess_instance_manual_override.dot')) as fp: + with open(str(fixturedir / 'simpleprocess_instance_override.dot')) as fp: + expected_graph = fp.read().splitlines() + assert set(graph.body) == set(expected_graph[1:-1]) + + def test_get_instance_graph__obsolete(self, db, fixturedir, admin_client): + process = models.SimpleProcess.objects.create() + start = process.task_set.create(name='start_method', status=Task.SUCCEEDED) + obsolete = process.task_set.create(name='obsolete', status=Task.SUCCEEDED) + end = process.task_set.create(name='end', status=Task.SUCCEEDED) + obsolete.parent_task_set.add(start) + end.parent_task_set.add(obsolete) + graph = process.get_instance_graph() + with open(str(fixturedir / 'simpleprocess_instance_obsolete.dot')) as fp: expected_graph = fp.read().splitlines() assert set(graph.body) == set(expected_graph[1:-1])