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")
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")