summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Fix tests on Python 3.10 + lint.config-with-c-codeMichael Howitz2021-11-232-2/+2
|
* Remove obsolete tests.Michael Howitz2021-11-111-19/+0
| | | | | | | | | | | | | | I renamed the tests (that's why their name ends with `2`) there where methods with the same names around line 1600. The other tests assure that a TypeError is raised when calling `pow(x, y, proxy)` because "a PyProxy cannot lie about its type". Interestingly the deleted tests did not fail on CPython but the tests expecting the TypeError were locally successful, too, but not at GHA – that's strange. I am restoring here the status before my renaming of the tests: The now deleted tests did not run because of the name clash.
* Lint the code.Michael Howitz2021-08-3033-422/+752
| | | | Add support for Python 3.9.
* Ensure all objects have consistent interface resolution orders.Jason Madden2020-03-233-6/+29
| | | | Fixes #71
* Let interfaces be iterated on Python 3Jason Madden2020-02-062-5/+32
| | | | Fixes https://github.com/zopefoundation/zope.interface/issues/141
* Allow iter({}.items()) on PyPy3Marius Gedminas2019-11-111-0/+4
| | | | | | | | Dict item iterators use a special type (builtins.dict_itemiterator) on recent versions of PyPy3. Fixes zope.security.interfaces.ForbiddenAttribute: ('__next__', <dict_itemiterator object at 0x00007f7c9c107320>)
* Decimal checker: __truediv__ was missing, also added tests, did some cleanupadamg-truediv-missingAdam Groszer2019-01-032-10/+59
|
* Fix tests and DeprecationWarnings.Jason Madden2018-10-192-14/+16
| | | | Fixes #55
* Add ``ISystemPrincipal`` and make ``system_user`` a regular object that ↵feature/system-user-regular-objectJason Madden2018-08-204-4/+42
| | | | | | implements it This facilitates adding adapter registrations for the system user.
* Fixes #10: Pure-python proxies don't check __unicode__Jason Madden2018-01-112-6/+58
| | | | | | | | | Just like the C implementation. Note that ``__str__`` is checked for both implementations on both Python 2 and 3, but if there is no ``__unicode__`` method defined, Python 2's automatic fallback to ``__str__`` is **not** checked when ``unicode`` is called. Add tests for these cases.
* Fix default values for Permission's title and description in Py2issue48Jason Madden2017-11-304-11/+38
| | | | | | | | | | And test this. This applies to both the class and the ZCML directive. Also adjust IPermission to use NativeStringLine for ``id``, since that's what ZCML has always been creating (it uses an Id, which subclasses NativeStringLine), and what's typically written in source code. Test that the permissions created from ZCML are valid with this change.
* Consistent capitalization of ID in docstrings and fields (except one case ↵Jason Madden2017-09-157-14/+14
| | | | | | where it was a i18n messageid). TIL that sphinx.ext.doctest has IGNORE_EXCEPTION_DETAIL set by default.
* Document proxy.__class__ troubles with isinstance/issubclassdocsJason Madden2017-09-141-1/+4
| | | | | | | | And suggest workarounds, in a prominent new section about proxy troubles. Link to this from everywhere we talk about proxies. Fixes #26
* Split narr.rst into parts and make the example more correct.Jason Madden2017-09-141-0/+3
| | | | | | It's not doctested so it isn't fully guaranteed to be correct, but it was relying on conpects that don't exist anymore (simpleinteraction, and the ISecurityPolicy having the checkPermission() method).
* Docs for testing.pyJason Madden2017-09-142-4/+26
|
* Cross refs for simplepolicies.pyJason Madden2017-09-141-2/+9
|
* Cross-refs and cleanups for proxy.py/rstJason Madden2017-09-141-1/+11
|
* Cross-refs and cleanups for permission.py/rstJason Madden2017-09-141-8/+20
|
* Doc cross-refs and cleanup for management.rst/pyJason Madden2017-09-141-12/+20
|
* Doc cleanup for decorator.rstJason Madden2017-09-141-0/+2
|
* cross-refs and cleanups for checker and adapter.Jason Madden2017-09-142-48/+128
|
* cross-references and interface cleanups for interfaces.py/rstJason Madden2017-09-141-83/+211
|
* Promote the constant for zope.Public from metaconfigure.py to interfaces.pypublic_permission_constJason Madden2017-09-1311-42/+48
| | | | | | | | | And use it consistently throughout this package. On Python 2, sometimes we were comparing the string with unicode and sometimes with str. Now its consistent. This is a start to addressing #6
* Remove commented code from test_checker.pyJason Madden2017-09-136-99/+85
| | | | | | Also run all remaining tests on all Python versions. Trivial trailing/keyword arg whitespace cleanups.
* Use zope.proxy 4.3.0 so that tests pass on Py3.issue40Jason Madden2017-09-131-9/+1
|
* 100% coverage for testing.pyJason Madden2017-09-124-46/+61
|
* 100% coverage for checker.py. Minor whitespace cleanups.Jason Madden2017-09-121-58/+67
|
* 100% coverage for proxy.pyJason Madden2017-09-122-8/+83
| | | | | | - The implementation of __getattribute__/__getattr__ now behaves like C and will not call a target's version of those functions more than once if they raise an AttributeError.
* Consistently use the correct base for super calls.Jason Madden2017-09-121-26/+26
|
* Coverage for get/setslice, length_hint, and comparison methods in proxy.pyJason Madden2017-09-122-22/+134
|
* 100% coverage for test_location.pyJason Madden2017-09-121-10/+1
| | | | zope.location is a hard test dependency, no need for conditional logic.
* 100% coverage for test_proxy.pyJason Madden2017-09-121-133/+76
| | | | | - Modern assert methods - Unify some py2/py3 tests that just depended on a method name.
* 100% coverage for test_checker.pyJason Madden2017-09-122-261/+276
| | | | | | - Modern assert methods - Whitespace cleanup - A whole test class was being skipped because of a duplicate name.
* 100% coverage for test_adapter.pyJason Madden2017-09-121-145/+83
| | | | | | - Use dict comprehensions - Use moddern self.assertIs - Unify external imports
* 100% for test_permission.pyJason Madden2017-09-121-52/+8
|
* Remove unused and broken zope.security.setup.Jason Madden2017-09-111-20/+0
|
* Remove unused internal files from tests/Jason Madden2017-09-115-162/+5
|
* 100% coverage of test_zcml_functest.pyJason Madden2017-09-111-127/+33
| | | | We have hard test dependencies, we don't need to be conditional.
* Document behaviour of ParanoidSecurityPolicy when there are no participationsissue19Jason Madden2017-09-112-15/+24
| | | | | | Add an explicit test for this case. Fixes #19.
* Merge pull request #37 from zopefoundation/issue35Jason Madden2017-09-112-0/+2
|\ | | | | call PyObject_GC_UnTrack() in tp_dealloc()
| * call PyObject_GC_UnTrack() in tp_dealloc()KIMURA Chikahiro2017-09-112-0/+2
| | | | | | | | | | | | | | | | | | see the following sites for details: * https://bugs.python.org/issue31095 * https://github.com/python/cpython/pull/2974 Fixes #35.
* | Always test watching checkers. Quiet their output to stderr.issue8Jason Madden2017-09-114-32/+65
| |
* | Fix ZOPE_WATCH_CHECKERS=1 in pure-Python mode.Jason Madden2017-09-111-20/+35
|/ | | | | | Fixes #8. Test environments still to come.
* Respect PURE_PYTHON at runtime. Partial fix for #33.issue33aJason Madden2017-09-082-9/+18
|
* Use importlib.reload instead of imp.reload.Jason Madden2017-09-082-58/+71
| | | | | | | | | | | Some minor cleanups and simplifications to test_proxy.py: - use loadTestsFromName() and wrap the conditional test in @unittest.skipIf. This gets environments closer to running the same number of tests, which helps when comparing to make sure nothing gets skipped. - Break compound assertions in test_coerce out into separate assertions for ease of reading and debuging.
* Simplify _compat.py now that we only run on newer PythonsJason Madden2017-09-0811-124/+77
| | | | | | | | | | | | | | | | | | - We have u'literals' so we don't need a _u() function. For the record the Emacs replacement regex was `_u(\(['"]\)\([^)]*\)\1) -> u\1\2\1`. Amazingly, I typed that right on the first try. A few things were only used in one (test) file or function, so it was better to keep the use, if any, local and out of the "public" api: - We can use io.StringIO everywhere and it's fast. It was only imported in one file anyway. - We can just import pickle. It was only imported in one file anyway. - TEXT was only used in one test function, `type(u'')` is just as clear (especially since the usual name is `text_type`). - reload was only used in one test function, so move the definition there.
* Merge pull request #31 from zopefoundation/issue7Jason Madden2017-09-082-31/+79
|\ | | | | Fix TypeError handling for ProxyPy.
| * Fix TypeError handling for ProxyPy.issue7Jason Madden2017-09-072-31/+79
| | | | | | | | | | | | | | Also add additional tests clarifying how the str-to-repr fallthrough works. Fixes #7
* | Allow iteration of all the custom itertools types.issue9Jason Madden2017-09-072-8/+101
| |
* | Fix issue 9: add default checkers for itertools.groupbyJason Madden2017-09-072-38/+64
|/ | | | | | | | | Also rename all the test classes in test_checker for consistency. I changed the test_suite function to not call them out by name and noticed the number of tests run dropped. At first I thought it had something to do with test class names or inheritance, so I made them all consistent. But it turned out that the manual list actually had some duplicates in it.