def test_get_workflow_from_closest_ancestor(self): # test that using Page.get_workflow() tries to get the workflow from itself, then the closest ancestor, and does # not get Workflows from further up the page tree first workflow_1 = Workflow.objects.create(name="test_workflow_1") workflow_2 = Workflow.objects.create(name="test_workflow_2") homepage = Page.objects.get(url_path="/home/") WorkflowPage.objects.create(page=homepage, workflow=workflow_1) hello_page = SimplePage(title="Hello world", slug="hello-world", content="hello") homepage.add_child(instance=hello_page) WorkflowPage.objects.create(page=hello_page, workflow=workflow_2) goodbye_page = SimplePage(title="Goodbye world", slug="goodbye-world", content="goodbye") hello_page.add_child(instance=goodbye_page) self.assertEqual(hello_page.get_workflow(), workflow_2) self.assertEqual(goodbye_page.get_workflow(), workflow_2) # Check the .all_pages() method self.assertFalse( workflow_1.all_pages().filter(id=hello_page.id).exists()) self.assertFalse( workflow_1.all_pages().filter(id=goodbye_page.id).exists()) self.assertTrue( workflow_2.all_pages().filter(id=hello_page.id).exists()) self.assertTrue( workflow_2.all_pages().filter(id=goodbye_page.id).exists())
def test_get_workflow_from_parent(self): # test ability to use Page.get_workflow() to retrieve a Workflow from a parent Page if none is set directly workflow = Workflow.objects.create(name="test_workflow") homepage = Page.objects.get(url_path="/home/") WorkflowPage.objects.create(page=homepage, workflow=workflow) hello_page = SimplePage(title="Hello world", slug="hello-world", content="hello") homepage.add_child(instance=hello_page) self.assertEqual(hello_page.get_workflow(), workflow) self.assertTrue(workflow.all_pages().filter(id=hello_page.id).exists())