示例#1
0
    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())
示例#2
0
 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())