From f11efad3a9e70889003229c95957ff5aedb8edd0 Mon Sep 17 00:00:00 2001 From: Michael Howitz Date: Tue, 23 Jan 2024 16:37:56 +0100 Subject: [PATCH] Drop support for `grok < 5`. (#7) Thus dropping support for JSON, REST and XMLRPC. --- CHANGES.rst | 3 + setup.py | 2 +- src/megrok/strictrequire/meta.py | 21 ------ .../strictrequire/tests/checkrequire.rst | 33 +-------- src/megrok/strictrequire/tests/fixtures.py | 69 ------------------- 5 files changed, 6 insertions(+), 122 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index b482e8d..cdf09f5 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -6,6 +6,9 @@ Changelog of megrok.strictrequire - Drop support for Python 2.7, 3.4, 3.5, 3.6. +- Drop support for ``grok < 5``, thus dropping support for JSON, REST and + XMLRPC. + - Add support for Python 3.7, 3.8, 3.9, 3.10, 3.11. diff --git a/setup.py b/setup.py index b796682..a6e3837 100644 --- a/setup.py +++ b/setup.py @@ -61,7 +61,7 @@ install_requires=[ 'setuptools', 'martian', - 'grok >= 3.0', + 'grok >= 5.0a1', ], extras_require={ 'test': tests_require diff --git a/src/megrok/strictrequire/meta.py b/src/megrok/strictrequire/meta.py index ed3da26..84f4fd6 100644 --- a/src/megrok/strictrequire/meta.py +++ b/src/megrok/strictrequire/meta.py @@ -58,24 +58,3 @@ class CheckRequireGrokkerAddForm(CheckRequireGrokker): class CheckRequireGrokkerEditForm(CheckRequireGrokker): """Ensure every grok.EditForm has a grok.require directive""" martian.component(grok.EditForm) - - -class CheckRequireRESTGrokker(martian.MethodGrokker): - """Ensure every grok.REST has a grok.require directive""" - martian.component(grok.REST) - martian.directive(grok.require, default=_require_marker) - - def execute(self, factory, method, config, require, **kw): - if require is _require_marker: - raise SecurityError( - 'megrok.strictrequire requires %r to use the grok.require ' - 'directive on the method: %s!' % (factory, method), factory) - return True - - -class CheckRequireXMLPRCGrokker(CheckRequireRESTGrokker): - martian.component(grok.XMLRPC) - - -class CheckRequireJSONGrokker(CheckRequireRESTGrokker): - martian.component(grok.JSON) diff --git a/src/megrok/strictrequire/tests/checkrequire.rst b/src/megrok/strictrequire/tests/checkrequire.rst index 0356750..e9ad61f 100644 --- a/src/megrok/strictrequire/tests/checkrequire.rst +++ b/src/megrok/strictrequire/tests/checkrequire.rst @@ -30,8 +30,7 @@ Ditto for grok.Form, grok.AddForm. grok.EditForm, grok.XMLRPC, grok.JSON, grok.REST components:: >>> from megrok.strictrequire.tests.fixtures import ( - ... NoRequireForm, NoRequireAddForm, NoRequireEditForm, - ... NoRequireXMLRPC, NoRequireREST, NoRequireJSON) + ... NoRequireForm, NoRequireAddForm, NoRequireEditForm) >>> grok_component('NoRequireForm', NoRequireForm) Traceback (most recent call last): ... @@ -47,28 +46,12 @@ grok.REST components:: ... megrok.strictrequire.meta.SecurityError: megrok.strictrequire requires to use the grok.require directive! - >>> grok_component('NoRequireXMLRPC', NoRequireXMLRPC) - Traceback (most recent call last): - ... - megrok.strictrequire.meta.SecurityError: megrok.strictrequire requires to use the grok.require directive on the method:...NoRequireXMLRPC.foobar... - - >>> grok_component('NoRequireREST', NoRequireREST) - Traceback (most recent call last): - ... - megrok.strictrequire.meta.SecurityError: megrok.strictrequire requires to use the grok.require directive on the method:...NoRequireREST.foobar... - - >>> grok_component('NoRequireJSON', NoRequireJSON) - Traceback (most recent call last): - ... - megrok.strictrequire.meta.SecurityError: megrok.strictrequire requires to use the grok.require directive on the method:...NoRequireJSON.foobar... - Of course, when the grok.require directive *is* used, there should not be any exception raised:: >>> from megrok.strictrequire.tests.fixtures import ( ... RequireView, RequirePage, RequireForm, RequireAddForm, - ... RequireEditForm, RequireXMLRPC, RequireREST, RequireJSON, - ... RequireOnMethodXMLRPC, RequireOnMethodREST, RequireOnMethodJSON) + ... RequireEditForm) >>> grok_component('RequireView', RequireView) True >>> grok_component('RequirePage', RequirePage) @@ -79,17 +62,5 @@ exception raised:: True >>> grok_component('RequireEditForm', RequireEditForm) True - >>> grok_component('RequireXMLRPC', RequireXMLRPC) - True - >>> grok_component('RequireREST', RequireREST) - True - >>> grok_component('RequireJSON', RequireJSON) - True - >>> grok_component('RequireOnMethodXMLRPC', RequireOnMethodXMLRPC) - True - >>> grok_component('RequireOnMethodREST', RequireOnMethodREST) - True - >>> grok_component('RequireOnMethodJSON', RequireOnMethodJSON) - True """ diff --git a/src/megrok/strictrequire/tests/fixtures.py b/src/megrok/strictrequire/tests/fixtures.py index 28a5abc..49d1133 100644 --- a/src/megrok/strictrequire/tests/fixtures.py +++ b/src/megrok/strictrequire/tests/fixtures.py @@ -56,27 +56,6 @@ class NoRequireEditForm(grok.EditForm): grok.context(zope.interface.Interface) -class NoRequireXMLRPC(grok.XMLRPC): - grok.context(zope.interface.Interface) - - def foobar(self): - pass - - -class NoRequireREST(grok.REST): - grok.context(zope.interface.Interface) - - def foobar(self): - pass - - -class NoRequireJSON(grok.JSON): - grok.context(zope.interface.Interface) - - def foobar(self): - pass - - class RequireView(grok.View): grok.context(zope.interface.Interface) grok.require('zope.Public') @@ -106,51 +85,3 @@ class RequireAddForm(grok.AddForm): class RequireEditForm(grok.EditForm): grok.context(zope.interface.Interface) grok.require('zope.Public') - - -class RequireXMLRPC(grok.XMLRPC): - grok.context(zope.interface.Interface) - grok.require('zope.Public') - - def foobar(self): - pass - - -class RequireREST(grok.REST): - grok.context(zope.interface.Interface) - grok.require('zope.Public') - - def foobar(self): - pass - - -class RequireJSON(grok.JSON): - grok.context(zope.interface.Interface) - grok.require('zope.Public') - - def foobar(self): - pass - - -class RequireOnMethodXMLRPC(grok.XMLRPC): - grok.context(zope.interface.Interface) - - @grok.require('zope.Public') - def foobar(self): - pass - - -class RequireOnMethodREST(grok.REST): - grok.context(zope.interface.Interface) - - @grok.require('zope.Public') - def foobar(self): - pass - - -class RequireOnMethodJSON(grok.JSON): - grok.context(zope.interface.Interface) - - @grok.require('zope.Public') - def foobar(self): - pass