def test_image_fields(self):
        content_structure = load_json("fields_image.json", __file__)

        with api.env.adopt_roles(["Manager"]):
            create_item_runner(
                self.portal,
                content_structure,
                default_lang="en",
                default_wf_state="published",
                base_image_path=os.path.dirname(__file__),
            )
        self.assertIn("an-image", self.portal.objectIds())
        self.assertTrue(self.portal["an-image"].image)

        self.assertIn("another-image", self.portal.objectIds())
        self.assertTrue(self.portal["another-image"].image)
        self.assertTrue(self.portal["another-image"].image.filename,
                        "image.png")
        self.assertTrue(self.portal["another-image"].image.contentType,
                        "image/png")

        self.assertIn("image-svg", self.portal.objectIds())
        self.assertTrue(self.portal["image-svg"].image)
        self.assertTrue(self.portal["image-svg"].image.filename, "image.svg")
        self.assertTrue(self.portal["image-svg"].image.contentType,
                        "image/svg")

        self.assertIn("news-item-image", self.portal.objectIds())
        self.assertTrue(self.portal["news-item-image"].image)
        self.assertTrue(self.portal["news-item-image"].image.filename,
                        "image.png")
        self.assertTrue(self.portal["news-item-image"].image.contentType,
                        "image/png")
Exemplo n.º 2
0
def import_content(context):
    """Import example content"""

    portal = api.portal.get()

    # users
    api.user.create(
        email="*****@*****.**",
        username="******",
        password="******",
        roles=("Manager", ),
        properties=None,
    )

    users = []
    for user in users:
        api.user.create(
            email="*****@*****.**",
            username=user,
            password="******",
            roles=("Site Administrator", ),
            properties=None,
        )

    # enable content non-globally addable types just for initial content
    # creation
    TEMP_ENABLE_CONTENT_TYPES = []
    for content_type in TEMP_ENABLE_CONTENT_TYPES:
        enable_content_type(portal, content_type)

    # content
    # content_structure = load_json("content.json", __file__)

    create_item_runner(
        api.portal.get(),
        content_structure,
        default_lang="de",
        default_wf_state="external",
        base_image_path=os.path.join(os.path.dirname(__file__), "example"),
    )

    # Delete Plone content
    if "Members" in portal.objectIds():
        api.content.delete(obj=portal["Members"])
    if "news" in portal.objectIds():
        api.content.delete(obj=portal["news"])
    if "events" in portal.objectIds():
        api.content.delete(obj=portal["events"])
    # if 'front-page' in portal.objectIds():
    #     api.content.delete(obj=portal['front-page'])

    # Set permissions for a folder
    # portal['interner-bereich'].manage_setLocalRoles('Authenticated Users', ['Reader', ]) # noqa

    # disable again content non-globally addable types just for initial content
    # creation
    for content_type in TEMP_ENABLE_CONTENT_TYPES:
        disable_content_type(portal, content_type)
    def test_effective_date_is_set_if_review_state_published(self):
        content_structure = load_json("test_content.json", __file__)

        self.portal.invokeFactory("Folder", "a-folder")
        self.assertIn("a-folder", self.portal.objectIds())

        with api.env.adopt_roles(["Manager"]):
            create_item_runner(
                self.portal,
                content_structure,
                default_lang="en",
                default_wf_state="published",
            )

        self.assertTrue(self.portal["a-folder"].effective() < DateTime())
    def test_edit_if_content_already_exists_given_modified_date(self):
        content_structure = load_json("test_content.json", __file__)

        self.portal.invokeFactory("Folder", "a-folder")
        self.assertIn("a-folder", self.portal.objectIds())

        with api.env.adopt_roles(["Manager"]):
            create_item_runner(
                self.portal,
                content_structure,
                default_lang="en",
                default_wf_state="published",
                do_not_edit_if_modified_after="2021-07-12",
            )

        self.assertEqual(self.portal["a-folder"].description, "")
    def test_blocks_fields(self):
        content_structure = load_json("fields_blocks.json", __file__)

        applyProfile(self.portal, "plone.restapi:blocks")

        with api.env.adopt_roles(["Manager"]):
            create_item_runner(
                self.portal,
                content_structure,
                default_lang="en",
                default_wf_state="published",
            )
        self.assertIn("a-test-page", self.portal.objectIds())
        self.assertTrue(self.portal["a-test-page"].
                        blocks["de4dcc60-aead-4188-a352-78a2e5c6adf8"]["text"]
                        ["blocks"][0]["text"] == "HELLOOOOO")  # noqa
    def test_default_blocks_fields(self):
        content_structure = load_json("fields_blocks.json", __file__)

        applyProfile(self.portal, "plone.restapi:blocks")

        with api.env.adopt_roles(["Manager"]):
            create_item_runner(
                self.portal,
                content_structure,
                default_lang="en",
                default_wf_state="published",
            )
        self.assertIn("a-test-page-with-default-blocks",
                      self.portal.objectIds())
        self.assertEqual(2,
                         len(self.portal["a-test-page-with-default-blocks"].
                             blocks.items()))  # noqa
    def test_file_fields(self):
        content_structure = load_json("fields_file.json", __file__)

        with api.env.adopt_roles(["Manager"]):
            create_item_runner(
                self.portal,
                content_structure,
                default_lang="en",
                default_wf_state="published",
                base_image_path=os.path.dirname(__file__),
            )
        self.assertIn("a-file", self.portal.objectIds())
        self.assertTrue(self.portal["a-file"].file)

        self.assertIn("another-file", self.portal.objectIds())
        self.assertTrue(self.portal["another-file"].file)
        self.assertTrue(self.portal["another-file"].file.filename,
                        "report.pdf")
        self.assertTrue(self.portal["another-file"].file.contentType,
                        "application/pdf")
    def test_edit_if_content_already_exists(self):
        content_structure = load_json("test_content.json", __file__)

        self.portal.invokeFactory("Folder", "a-folder")
        self.assertIn("a-folder", self.portal.objectIds())
        self.portal.invokeFactory("Folder", "a-folder-with-no-id")
        self.assertIn("a-folder-with-no-id", self.portal.objectIds())

        with api.env.adopt_roles(["Manager"]):
            create_item_runner(
                self.portal,
                content_structure,
                default_lang="en",
                default_wf_state="published",
            )

        self.assertEqual(self.portal["a-folder"].description,
                         "The description")
        self.assertEqual(self.portal["a-folder-with-no-id"].description,
                         "The description edited")