-
-
Notifications
You must be signed in to change notification settings - Fork 75
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Branch: refs/heads/master Date: 2024-10-18T09:01:33+02:00 Author: 1letter (1letter) <1letter@gmx.de> Commit: plone/plone.app.widgets@b3cc037 deactivate robot tests Files changed: A news/224.tests A plone/app/widgets/tests/robot/deactivate_test_querystring_widget.robot A plone/app/widgets/tests/robot/deactivate_test_select_widget.robot D plone/app/widgets/tests/robot/test_querystring_widget.robot D plone/app/widgets/tests/robot/test_select_widget.robot Repository: plone.app.widgets Branch: refs/heads/master Date: 2024-10-18T09:05:27+02:00 Author: Peter Mathis (petschki) <petschki@users.noreply.github.com> Commit: plone/plone.app.widgets@9a6e08b Merge pull request #225 from plone/deactivate-robot-tests deactivate robot tests Files changed: A news/224.tests A plone/app/widgets/tests/robot/deactivate_test_querystring_widget.robot A plone/app/widgets/tests/robot/deactivate_test_select_widget.robot D plone/app/widgets/tests/robot/test_querystring_widget.robot D plone/app/widgets/tests/robot/test_select_widget.robot
- Loading branch information
Showing
1 changed file
with
32 additions
and
20 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,28 +1,40 @@ | ||
Repository: Products.CMFPlone | ||
Repository: plone.app.widgets | ||
|
||
|
||
Branch: refs/heads/6.0.x | ||
Date: 2024-10-17T09:32:22-07:00 | ||
Author: David Glick (davisagli) <david@glicksoftware.com> | ||
Commit: https://github.com/plone/Products.CMFPlone/commit/0daab7cdf869b39aecc8f46dcb682013724da24b | ||
Branch: refs/heads/master | ||
Date: 2024-10-18T09:01:33+02:00 | ||
Author: 1letter (1letter) <1letter@gmx.de> | ||
Commit: https://github.com/plone/plone.app.widgets/commit/b3cc037a6e33d7b04f0e5c7df7b8648557ddfded | ||
|
||
Backport filter improvements for URL Management control panel (#4032) | ||
deactivate robot tests | ||
|
||
* Merge pull request #4009 from Faakhir30/add_date_filters | ||
|
||
Added start and end filters in redirectionSet. | ||
|
||
* Allow substring matches when filtering aliases in the URL Management control panel | ||
|
||
--------- | ||
|
||
Co-authored-by: Faakhir Zahid <110815427+Faakhir30@users.noreply.github.com> | ||
Files changed: | ||
A news/224.tests | ||
A plone/app/widgets/tests/robot/deactivate_test_querystring_widget.robot | ||
A plone/app/widgets/tests/robot/deactivate_test_select_widget.robot | ||
D plone/app/widgets/tests/robot/test_querystring_widget.robot | ||
D plone/app/widgets/tests/robot/test_select_widget.robot | ||
|
||
b'diff --git a/news/224.tests b/news/224.tests\nnew file mode 100644\nindex 00000000..fbab5550\n--- /dev/null\n+++ b/news/224.tests\n@@ -0,0 +1 @@\n+deactivate robot tests in this package and move the tests to Products.CMFPlone @1letter\n\\ No newline at end of file\ndiff --git a/plone/app/widgets/tests/robot/test_querystring_widget.robot b/plone/app/widgets/tests/robot/deactivate_test_querystring_widget.robot\nsimilarity index 100%\nrename from plone/app/widgets/tests/robot/test_querystring_widget.robot\nrename to plone/app/widgets/tests/robot/deactivate_test_querystring_widget.robot\ndiff --git a/plone/app/widgets/tests/robot/test_select_widget.robot b/plone/app/widgets/tests/robot/deactivate_test_select_widget.robot\nsimilarity index 100%\nrename from plone/app/widgets/tests/robot/test_select_widget.robot\nrename to plone/app/widgets/tests/robot/deactivate_test_select_widget.robot\n' | ||
|
||
Repository: plone.app.widgets | ||
|
||
|
||
Branch: refs/heads/master | ||
Date: 2024-10-18T09:05:27+02:00 | ||
Author: Peter Mathis (petschki) <petschki@users.noreply.github.com> | ||
Commit: https://github.com/plone/plone.app.widgets/commit/9a6e08b48af097f417e333dc7c87f8d7e58675f1 | ||
|
||
Merge pull request #225 from plone/deactivate-robot-tests | ||
|
||
deactivate robot tests | ||
|
||
Files changed: | ||
A news/4009.feature | ||
A news/4031.feature | ||
M Products/CMFPlone/controlpanel/browser/redirects.py | ||
M Products/CMFPlone/controlpanel/tests/test_controlpanel_browser_redirection.py | ||
A news/224.tests | ||
A plone/app/widgets/tests/robot/deactivate_test_querystring_widget.robot | ||
A plone/app/widgets/tests/robot/deactivate_test_select_widget.robot | ||
D plone/app/widgets/tests/robot/test_querystring_widget.robot | ||
D plone/app/widgets/tests/robot/test_select_widget.robot | ||
|
||
b'diff --git a/Products/CMFPlone/controlpanel/browser/redirects.py b/Products/CMFPlone/controlpanel/browser/redirects.py\nindex 46b128ca75..25e271028e 100644\n--- a/Products/CMFPlone/controlpanel/browser/redirects.py\n+++ b/Products/CMFPlone/controlpanel/browser/redirects.py\n@@ -1,4 +1,5 @@\n from csv import writer\n+import warnings\n from DateTime import DateTime\n from DateTime.interfaces import DateTimeError\n from io import StringIO\n@@ -163,7 +164,11 @@ def view_url(self):\n \n \n class RedirectionSet:\n- def __init__(self, query="", created="", manual=""):\n+ # Marker so that plone.restapi can detect if this is\n+ # a version that supports the start and end parameters\n+ supports_date_range_filtering = True\n+\n+ def __init__(self, query="", created="", manual="", start="", end=""):\n self.storage = getUtility(IRedirectionStorage)\n \n portal = getSite()\n@@ -171,7 +176,7 @@ def __init__(self, query="", created="", manual=""):\n self.portal_path_len = len(self.portal_path)\n \n # noinspection PyProtectedMember\n- if query:\n+ if query and query.startswith("/"):\n # with query path /Plone/news:\n # min_k is /Plone/news and\n # max_k is /Plone/newt\n@@ -179,6 +184,8 @@ def __init__(self, query="", created="", manual=""):\n min_k = "{:s}/{:s}".format(self.portal_path, query.strip("/"))\n max_k = min_k[:-1] + chr(ord(min_k[-1]) + 1)\n self.data = self.storage._paths.keys(min=min_k, max=max_k, excludemax=True)\n+ elif query:\n+ self.data = [path for path in self.storage._paths.keys() if query in path]\n else:\n self.data = self.storage._paths.keys()\n if manual:\n@@ -190,20 +197,35 @@ def __init__(self, query="", created="", manual=""):\n else:\n manual = ""\n if created:\n+ end = created\n+ warnings.warn(\n+ "The \'created\' parameter is deprecated. Use \'end\' parameter instead.",\n+ DeprecationWarning,\n+ )\n+ if start:\n+ try:\n+ start = DateTime(start)\n+ except DateTimeError:\n+ logger.warning("Failed to parse as DateTime: %s", start)\n+ start = ""\n+ if end:\n try:\n- created = DateTime(created)\n+ end = DateTime(end)\n except DateTimeError:\n- logger.warning("Failed to parse as DateTime: %s", created)\n- created = ""\n- if created or manual != "":\n+ logger.warning("Failed to parse as DateTime: %s", end)\n+ end = ""\n+ if start or end or manual != "":\n chosen = []\n for redirect in self.data:\n info = self.storage.get_full(redirect)\n if manual != "":\n if info[2] != manual:\n continue\n- if created and info[1]:\n- if info[1] >= created:\n+ if start and info[1]:\n+ if info[1] < start:\n+ continue\n+ if end and info[1]:\n+ if info[1] >= end:\n continue\n chosen.append(redirect)\n self.data = chosen\n@@ -256,6 +278,8 @@ def redirects(self):\n RedirectionSet(\n query=self.request.form.get("q", ""),\n created=self.request.form.get("datetime", ""),\n+ start=self.request.form.get("start", ""),\n+ end=self.request.form.get("end", ""),\n manual=self.request.form.get("manual", ""),\n ),\n int(self.request.form.get("b_size", "15")),\n@@ -280,9 +304,17 @@ def __call__(self):\n else:\n query = self.request.form.get("q", "")\n created = self.request.form.get("datetime", "")\n+ start = self.request.form.get("start", "")\n+ end = self.request.form.get("end", "")\n manual = self.request.form.get("manual", "")\n- if created or manual or (query and query != "/"):\n- rset = RedirectionSet(query=query, created=created, manual=manual)\n+ if created or start or end or manual or (query and query != "/"):\n+ rset = RedirectionSet(\n+ query=query,\n+ created=created,\n+ manual=manual,\n+ start=start,\n+ end=end,\n+ )\n redirects = list(rset.data)\n else:\n redirects = []\ndiff --git a/Products/CMFPlone/controlpanel/tests/test_controlpanel_browser_redirection.py b/Products/CMFPlone/controlpanel/tests/test_controlpanel_browser_redirection.py\nindex 3a219f5e57..2ba3fdde99 100644\n--- a/Products/CMFPlone/controlpanel/tests/test_controlpanel_browser_redirection.py\n+++ b/Products/CMFPlone/controlpanel/tests/test_controlpanel_browser_redirection.py\n@@ -241,6 +241,9 @@ def test_redirection_controlpanel_filtering(self):\n # this should return one and not two (we need excludemax=True)\n redirects = RedirectionSet(query="/foo1/777")\n self.assertEqual(len(redirects), 1)\n+ # query without an initial slash matches any substring\n+ redirects = RedirectionSet(query="999")\n+ self.assertEqual(len(redirects), 2)\n \n request = self.layer["request"].clone()\n request.form["q"] = "/foo"\n@@ -336,7 +339,7 @@ def test_redirection_controlpanel_filter_date(self):\n \n redirects = RedirectionSet()\n self.assertEqual(len(redirects), 400)\n- # created can be anything that can be parsed by DateTime.\n+ # created can be anything that can be parsed by DateTime. (deprecated)\n # Otherwise it is ignored.\n self.assertEqual(len(RedirectionSet(created="2019-01-01")), 400)\n self.assertEqual(len(RedirectionSet(created="1999-01-01")), 0)\n@@ -346,38 +349,57 @@ def test_redirection_controlpanel_filter_date(self):\n self.assertEqual(len(RedirectionSet(created="2001-02-01 00:00:00")), 31)\n self.assertEqual(len(RedirectionSet(created="2001-02-01 00:00:01")), 32)\n self.assertEqual(len(RedirectionSet(created="badvalue")), 400)\n+ # start is inclusive and can be anything that can be parsed by DateTime.\n+ # Otherwise it is ignored.\n+ self.assertEqual(len(RedirectionSet(start="2019-01-01")), 0)\n+ self.assertEqual(len(RedirectionSet(start="2001-01-02")), 399)\n+ self.assertEqual(len(RedirectionSet(start="2001-02-01 00:00:00")), 369)\n+ self.assertEqual(len(RedirectionSet(start="2001-02-01 00:00:01")), 368)\n+ self.assertEqual(len(RedirectionSet(start="badvalue")), 400)\n+\n+ # End is exclisive and can be anything that can be parsed by DateTime.\n+ # Otherwise it is ignored.\n+ self.assertEqual(len(RedirectionSet(end="1999-01-01")), 0)\n+ self.assertEqual(len(RedirectionSet(end="2000-01-01")), 0)\n+ self.assertEqual(len(RedirectionSet(end="2001-02-01")), 31)\n+ self.assertEqual(len(RedirectionSet(end="2001-02-01 00:00:00")), 31)\n+ self.assertEqual(len(RedirectionSet(end="2001-02-01 00:00:01")), 32)\n+ self.assertEqual(len(RedirectionSet(end="badvalue")), 400)\n+\n+ self.assertEqual(len(RedirectionSet(start="2001-01-01", end="2001-01-01")), 0)\n+ self.assertEqual(len(RedirectionSet(start="2001-01-01", end="2001-01-02")), 1)\n \n # DateTime(\'2002-01-01\') results in a timezone GMT+0\n- self.assertEqual(len(RedirectionSet(created="2002-01-01")), 365)\n+ self.assertEqual(len(RedirectionSet(end="2002-01-01")), 365)\n # DateTime(\'2002/01/01\') results in a timezone GMT+1 for me,\n # or a different zone depending on where in the world you are.\n # So we need to be lenient in the tests.\n- self.assertGreaterEqual(len(RedirectionSet(created="2002/01/01")), 364)\n- self.assertLessEqual(len(RedirectionSet(created="2002/01/01")), 366)\n+ self.assertGreaterEqual(len(RedirectionSet(end="2002/01/01")), 364)\n+ self.assertLessEqual(len(RedirectionSet(end="2002/01/01")), 366)\n \n request = self.layer["request"].clone()\n- request.form["datetime"] = ""\n+ request.form["start"] = ""\n view = getMultiAdapter(\n (self.layer["portal"], request), name="redirection-controlpanel"\n )\n self.assertEqual(view.redirects().numpages, math.ceil(400 / 15.0))\n \n request = self.layer["request"].clone()\n- request.form["datetime"] = "2001-01-27"\n+ request.form["end"] = "2001-01-27"\n view = getMultiAdapter(\n (self.layer["portal"], request), name="redirection-controlpanel"\n )\n self.assertEqual(view.redirects().numpages, math.ceil(27 / 15.0))\n \n request = self.layer["request"].clone()\n- request.form["datetime"] = "2002-01-01"\n+ request.form["end"] = "2002-01-01"\n view = getMultiAdapter(\n (self.layer["portal"], request), name="redirection-controlpanel"\n )\n self.assertEqual(view.redirects().numpages, math.ceil(365 / 15.0))\n \n request = self.layer["request"].clone()\n- request.form["datetime"] = "2019-01-01"\n+ request.form["end"] = "2019-01-01"\n view = getMultiAdapter(\n (self.layer["portal"], request), name="redirection-controlpanel"\n )\ndiff --git a/news/4009.feature b/news/4009.feature\nnew file mode 100644\nindex 0000000000..1a58fdb77f\n--- /dev/null\n+++ b/news/4009.feature\n@@ -0,0 +1 @@\n+Redirection control panel: Added support for start and end filters. @Faakhir30\ndiff --git a/news/4031.feature b/news/4031.feature\nnew file mode 100644\nindex 0000000000..767054e50c\n--- /dev/null\n+++ b/news/4031.feature\n@@ -0,0 +1 @@\n+URL Management control panel: Find substring matches when querying aliases. @davisagli\n' | ||
b'diff --git a/news/224.tests b/news/224.tests\nnew file mode 100644\nindex 00000000..fbab5550\n--- /dev/null\n+++ b/news/224.tests\n@@ -0,0 +1 @@\n+deactivate robot tests in this package and move the tests to Products.CMFPlone @1letter\n\\ No newline at end of file\ndiff --git a/plone/app/widgets/tests/robot/test_querystring_widget.robot b/plone/app/widgets/tests/robot/deactivate_test_querystring_widget.robot\nsimilarity index 100%\nrename from plone/app/widgets/tests/robot/test_querystring_widget.robot\nrename to plone/app/widgets/tests/robot/deactivate_test_querystring_widget.robot\ndiff --git a/plone/app/widgets/tests/robot/test_select_widget.robot b/plone/app/widgets/tests/robot/deactivate_test_select_widget.robot\nsimilarity index 100%\nrename from plone/app/widgets/tests/robot/test_select_widget.robot\nrename to plone/app/widgets/tests/robot/deactivate_test_select_widget.robot\n' | ||
|