diff --git a/last_commit.txt b/last_commit.txt index 206315744e..1bf8d49bdb 100644 --- a/last_commit.txt +++ b/last_commit.txt @@ -1,38 +1,41 @@ -Repository: plone.app.referenceablebehavior +Repository: Products.CMFPlone Branch: refs/heads/master -Date: 2019-04-09T10:38:17+02:00 -Author: Jens W. Klein (jensens) -Commit: https://github.com/plone/plone.app.referenceablebehavior/commit/9e13ce5c18ac38d7260bac3b3e977b48c48b02b5 +Date: 2019-04-09T14:15:49+02:00 +Author: Maurits van Rees (mauritsvanrees) +Commit: https://github.com/plone/Products.CMFPlone/commit/a43f0d9deead63c1e24c966bd0f1fa560f8058b0 + +Fixed unstable Markup Control Panel robot test again. -Revert "Fix references missing from the reference catalog on move/rename" +The trick seems to be to first check the allowed type that we want to add, +and then uncheck the other ones. +Otherwise you get a slightly belated validation error before pressing Save, +and the Save has no effect. -This reverts commit a45f487e0f94effb3992c18c9f416d5cb2cf7234. +(If this does not help, we really have to add a 'Sleep 1' before pressing Save.) Files changed: -M CHANGES.rst -M plone/app/referenceablebehavior/tests/test_basics.py -M plone/app/referenceablebehavior/uidcatalog.py +A news/2809.bugfix +M Products/CMFPlone/tests/robot/test_controlpanel_markup.robot -b'diff --git a/CHANGES.rst b/CHANGES.rst\nindex 4856fce..ffa01c0 100644\n--- a/CHANGES.rst\n+++ b/CHANGES.rst\n@@ -14,9 +14,7 @@ New features:\n \n Bug fixes:\n \n-- Fix references missing from the reference catalog when an object is\n- moved/renamed.\n- [rpatterson]\n+- *add item here*\n \n \n 0.7.7 (2017-02-05)\ndiff --git a/plone/app/referenceablebehavior/tests/test_basics.py b/plone/app/referenceablebehavior/tests/test_basics.py\nindex 9cf83ba..ccf1263 100644\n--- a/plone/app/referenceablebehavior/tests/test_basics.py\n+++ b/plone/app/referenceablebehavior/tests/test_basics.py\n@@ -25,44 +25,35 @@ def test_rename_does_not_change_uuid(self):\n self.portal.manage_renameObject(id=\'doc1\', new_id=\'new_name\')\n self.assertEquals(old_doc_uuid, IUUID(self.portal[\'new_name\']))\n \n+ @unittest.skip(\'Needs Refactor. Linkintegrity does not use ref_catalog\')\n def test_rename_updates_ref_catalog(self):\n doc1 = self.portal[\'doc1\']\n doc2 = self.portal[\'doc2\']\n-\n- doc1_refs = IReferenceable(doc1)\n- doc2_refs = IReferenceable(doc2)\n- doc1_refs.addReference(doc2_refs, relationship=\'fooRelationship\')\n-\n ref_catalog = self.portal.reference_catalog\n+ doc1.text = RichTextValue(\'doc2\')\n+ modified(doc1)\n self.assertEquals(1, len(ref_catalog()))\n- self.assertEquals([doc2], doc1_refs.getReferences())\n+\n+ self.assertEquals([doc2], IReferenceable(doc1).getReferences())\n ref_brain = ref_catalog()[0]\n self.assertTrue(ref_brain.getPath().startswith(\'doc1\'))\n-\n self.portal.manage_renameObject(id=\'doc1\', new_id=\'new_name\')\n- doc1 = self.portal[\'new_name\']\n- doc1_refs = IReferenceable(doc1)\n-\n+ modified(doc1)\n self.assertEquals(1, len(ref_catalog()))\n ref_brain = ref_catalog()[0]\n self.assertTrue(ref_brain.getPath().startswith(\'new_name\'))\n- self.assertEquals([doc2], doc1_refs.getReferences())\n+ self.assertEquals([doc2], IReferenceable(doc1).getReferences())\n \n+ @unittest.skip(\'Needs Refactor. Linkintegrity does not use ref_catalog\')\n def test_remove_cleans_ref_catalog(self):\n doc1 = self.portal[\'doc1\']\n- doc2 = self.portal[\'doc2\']\n-\n- doc1_refs = IReferenceable(doc1)\n- doc2_refs = IReferenceable(doc2)\n- doc1_refs.addReference(doc2_refs, relationship=\'fooRelationship\')\n-\n+ doc1.text = RichTextValue(\'doc1\')\n+ modified(doc1)\n ref_catalog = self.portal.reference_catalog\n self.assertEquals(1, len(ref_catalog()))\n- self.assertEquals([doc1], doc2_refs.getBackReferences())\n \n self.portal.manage_delObjects([\'doc1\'])\n self.assertEquals(0, len(ref_catalog()))\n- self.assertEquals([], doc2_refs.getBackReferences())\n \n def test_referenceable_api(self):\n doc1 = self.portal[\'doc1\']\ndiff --git a/plone/app/referenceablebehavior/uidcatalog.py b/plone/app/referenceablebehavior/uidcatalog.py\nindex 2daabe9..2580fac 100644\n--- a/plone/app/referenceablebehavior/uidcatalog.py\n+++ b/plone/app/referenceablebehavior/uidcatalog.py\n@@ -77,17 +77,15 @@ def moved_handler(obj, event):\n return\n \n for ref in annotations.objectValues():\n- new_url = getRelURL(ref_catalog, ref.getPhysicalPath())\n+ url = getRelURL(ref_catalog, ref.getPhysicalPath())\n if event.oldName and event.newName:\n- old_url = event.oldName + new_url[len(event.newName):]\n- uid_catalog_rid = uid_catalog.getrid(old_url)\n- ref_catalog_rid = ref_catalog.getrid(old_url)\n+ url = event.oldName + url[len(event.newName):]\n+ uid_catalog_rid = uid_catalog.getrid(url)\n+ ref_catalog_rid = ref_catalog.getrid(url)\n if uid_catalog_rid is not None:\n- uid_catalog.uncatalog_object(old_url)\n- uid_catalog.catalog_object(ref, new_url)\n+ uid_catalog.uncatalog_object(url)\n if ref_catalog_rid is not None:\n- ref_catalog.uncatalog_object(old_url)\n- ref_catalog.catalog_object(ref, new_url)\n+ ref_catalog.uncatalog_object(url)\n \n \n def removed_handler(obj, event):\n' +b'diff --git a/Products/CMFPlone/tests/robot/test_controlpanel_markup.robot b/Products/CMFPlone/tests/robot/test_controlpanel_markup.robot\nindex b455c5cf4..1df997158 100644\n--- a/Products/CMFPlone/tests/robot/test_controlpanel_markup.robot\n+++ b/Products/CMFPlone/tests/robot/test_controlpanel_markup.robot\n@@ -46,12 +46,11 @@ the markup control panel\n # --- WHEN -------------------------------------------------------------------\n \n I set allowed types to "${type}"\n- [Documentation] \'Wait until page contains Changes saved\' is nicer, but is unstable. See https://github.com/plone/Products.CMFPlone/issues/2809\n+ with the label ${type} Select Checkbox\n with the label text/html UnSelect Checkbox\n with the label text/x-web-textile UnSelect Checkbox\n- with the label ${type} Select Checkbox\n Click Button Save\n- Go to ${PLONE_URL}/@@markup-controlpanel\n+ Wait until page contains Changes saved\n Checkbox Should Be Selected ${type}\n Checkbox Should Not Be Selected text/html\n Checkbox Should Not Be Selected text/x-web-textile\ndiff --git a/news/2809.bugfix b/news/2809.bugfix\nnew file mode 100644\nindex 000000000..9e3c9b8e1\n--- /dev/null\n+++ b/news/2809.bugfix\n@@ -0,0 +1 @@\n+Fixed unstable Markup Control Panel robot test again. [maurits]\n' -Repository: plone.app.referenceablebehavior +Repository: Products.CMFPlone Branch: refs/heads/master -Date: 2019-04-09T10:40:01+02:00 +Date: 2019-04-09T16:12:50+02:00 Author: Jens W. Klein (jensens) -Commit: https://github.com/plone/plone.app.referenceablebehavior/commit/53bbe2b5170ed7f018b6e2d60bb47d89fa050b29 +Commit: https://github.com/plone/Products.CMFPlone/commit/183982b1dec33f56c4e6f5e5fe182efa6f780c91 -Merge pull request #12 from plone/revert-breaking-commit-by-rpatterson +Merge pull request #2826 from plone/maurits-issue-2809-unstable-robot-markup-2 -Revert "Fix references missing from the reference catalog on move/ren… +Fixed unstable Markup Control Panel robot test again. Files changed: -M CHANGES.rst -M plone/app/referenceablebehavior/tests/test_basics.py -M plone/app/referenceablebehavior/uidcatalog.py +A news/2809.bugfix +M Products/CMFPlone/tests/robot/test_controlpanel_markup.robot -b'diff --git a/CHANGES.rst b/CHANGES.rst\nindex 4856fce..ffa01c0 100644\n--- a/CHANGES.rst\n+++ b/CHANGES.rst\n@@ -14,9 +14,7 @@ New features:\n \n Bug fixes:\n \n-- Fix references missing from the reference catalog when an object is\n- moved/renamed.\n- [rpatterson]\n+- *add item here*\n \n \n 0.7.7 (2017-02-05)\ndiff --git a/plone/app/referenceablebehavior/tests/test_basics.py b/plone/app/referenceablebehavior/tests/test_basics.py\nindex 9cf83ba..ccf1263 100644\n--- a/plone/app/referenceablebehavior/tests/test_basics.py\n+++ b/plone/app/referenceablebehavior/tests/test_basics.py\n@@ -25,44 +25,35 @@ def test_rename_does_not_change_uuid(self):\n self.portal.manage_renameObject(id=\'doc1\', new_id=\'new_name\')\n self.assertEquals(old_doc_uuid, IUUID(self.portal[\'new_name\']))\n \n+ @unittest.skip(\'Needs Refactor. Linkintegrity does not use ref_catalog\')\n def test_rename_updates_ref_catalog(self):\n doc1 = self.portal[\'doc1\']\n doc2 = self.portal[\'doc2\']\n-\n- doc1_refs = IReferenceable(doc1)\n- doc2_refs = IReferenceable(doc2)\n- doc1_refs.addReference(doc2_refs, relationship=\'fooRelationship\')\n-\n ref_catalog = self.portal.reference_catalog\n+ doc1.text = RichTextValue(\'doc2\')\n+ modified(doc1)\n self.assertEquals(1, len(ref_catalog()))\n- self.assertEquals([doc2], doc1_refs.getReferences())\n+\n+ self.assertEquals([doc2], IReferenceable(doc1).getReferences())\n ref_brain = ref_catalog()[0]\n self.assertTrue(ref_brain.getPath().startswith(\'doc1\'))\n-\n self.portal.manage_renameObject(id=\'doc1\', new_id=\'new_name\')\n- doc1 = self.portal[\'new_name\']\n- doc1_refs = IReferenceable(doc1)\n-\n+ modified(doc1)\n self.assertEquals(1, len(ref_catalog()))\n ref_brain = ref_catalog()[0]\n self.assertTrue(ref_brain.getPath().startswith(\'new_name\'))\n- self.assertEquals([doc2], doc1_refs.getReferences())\n+ self.assertEquals([doc2], IReferenceable(doc1).getReferences())\n \n+ @unittest.skip(\'Needs Refactor. Linkintegrity does not use ref_catalog\')\n def test_remove_cleans_ref_catalog(self):\n doc1 = self.portal[\'doc1\']\n- doc2 = self.portal[\'doc2\']\n-\n- doc1_refs = IReferenceable(doc1)\n- doc2_refs = IReferenceable(doc2)\n- doc1_refs.addReference(doc2_refs, relationship=\'fooRelationship\')\n-\n+ doc1.text = RichTextValue(\'doc1\')\n+ modified(doc1)\n ref_catalog = self.portal.reference_catalog\n self.assertEquals(1, len(ref_catalog()))\n- self.assertEquals([doc1], doc2_refs.getBackReferences())\n \n self.portal.manage_delObjects([\'doc1\'])\n self.assertEquals(0, len(ref_catalog()))\n- self.assertEquals([], doc2_refs.getBackReferences())\n \n def test_referenceable_api(self):\n doc1 = self.portal[\'doc1\']\ndiff --git a/plone/app/referenceablebehavior/uidcatalog.py b/plone/app/referenceablebehavior/uidcatalog.py\nindex 2daabe9..2580fac 100644\n--- a/plone/app/referenceablebehavior/uidcatalog.py\n+++ b/plone/app/referenceablebehavior/uidcatalog.py\n@@ -77,17 +77,15 @@ def moved_handler(obj, event):\n return\n \n for ref in annotations.objectValues():\n- new_url = getRelURL(ref_catalog, ref.getPhysicalPath())\n+ url = getRelURL(ref_catalog, ref.getPhysicalPath())\n if event.oldName and event.newName:\n- old_url = event.oldName + new_url[len(event.newName):]\n- uid_catalog_rid = uid_catalog.getrid(old_url)\n- ref_catalog_rid = ref_catalog.getrid(old_url)\n+ url = event.oldName + url[len(event.newName):]\n+ uid_catalog_rid = uid_catalog.getrid(url)\n+ ref_catalog_rid = ref_catalog.getrid(url)\n if uid_catalog_rid is not None:\n- uid_catalog.uncatalog_object(old_url)\n- uid_catalog.catalog_object(ref, new_url)\n+ uid_catalog.uncatalog_object(url)\n if ref_catalog_rid is not None:\n- ref_catalog.uncatalog_object(old_url)\n- ref_catalog.catalog_object(ref, new_url)\n+ ref_catalog.uncatalog_object(url)\n \n \n def removed_handler(obj, event):\n' +b'diff --git a/Products/CMFPlone/tests/robot/test_controlpanel_markup.robot b/Products/CMFPlone/tests/robot/test_controlpanel_markup.robot\nindex b455c5cf4..1df997158 100644\n--- a/Products/CMFPlone/tests/robot/test_controlpanel_markup.robot\n+++ b/Products/CMFPlone/tests/robot/test_controlpanel_markup.robot\n@@ -46,12 +46,11 @@ the markup control panel\n # --- WHEN -------------------------------------------------------------------\n \n I set allowed types to "${type}"\n- [Documentation] \'Wait until page contains Changes saved\' is nicer, but is unstable. See https://github.com/plone/Products.CMFPlone/issues/2809\n+ with the label ${type} Select Checkbox\n with the label text/html UnSelect Checkbox\n with the label text/x-web-textile UnSelect Checkbox\n- with the label ${type} Select Checkbox\n Click Button Save\n- Go to ${PLONE_URL}/@@markup-controlpanel\n+ Wait until page contains Changes saved\n Checkbox Should Be Selected ${type}\n Checkbox Should Not Be Selected text/html\n Checkbox Should Not Be Selected text/x-web-textile\ndiff --git a/news/2809.bugfix b/news/2809.bugfix\nnew file mode 100644\nindex 000000000..9e3c9b8e1\n--- /dev/null\n+++ b/news/2809.bugfix\n@@ -0,0 +1 @@\n+Fixed unstable Markup Control Panel robot test again. [maurits]\n'