From 96324fc8ef70dccb27fed45a285b41da8aa79624 Mon Sep 17 00:00:00 2001 From: jensens Date: Tue, 9 Apr 2019 16:12:50 +0200 Subject: [PATCH] [fc] Repository: Products.CMFPlone Branch: refs/heads/master 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. 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. (If this does not help, we really have to add a 'Sleep 1' before pressing Save.) Files changed: A news/2809.bugfix M Products/CMFPlone/tests/robot/test_controlpanel_markup.robot Repository: Products.CMFPlone Branch: refs/heads/master Date: 2019-04-09T16:12:50+02:00 Author: Jens W. Klein (jensens) Commit: https://github.com/plone/Products.CMFPlone/commit/183982b1dec33f56c4e6f5e5fe182efa6f780c91 Merge pull request #2826 from plone/maurits-issue-2809-unstable-robot-markup-2 Fixed unstable Markup Control Panel robot test again. Files changed: A news/2809.bugfix M Products/CMFPlone/tests/robot/test_controlpanel_markup.robot --- last_commit.txt | 41 ++++++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 19 deletions(-) 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'