<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-packages/zope-interface.git/src/zope/interface/tests, branch issue11</title>
<subtitle>github.com: zopefoundation/zope.interface.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/'/>
<entry>
<title>Make provided/implementedBy and adapter registries respect super().</title>
<updated>2020-03-09T17:51:18+00:00</updated>
<author>
<name>Jason Madden</name>
<email>jamadden@gmail.com</email>
</author>
<published>2020-03-05T15:52:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=1e720c3819b8daa07aaad0ee0258d9035597f27d'/>
<id>1e720c3819b8daa07aaad0ee0258d9035597f27d</id>
<content type='text'>
The query functions now start by looking at the next class in the MRO (interfaces directly provided by the underlying object are not found).

Adapter registries automatically pick up providedBy change to start finding the correct implementations of adapters, but to make that really useful they needed to change to unpack super() arguments and pass __self__ to the factory.

Fixes #11

Unfortunately, this makes PyPy unable to build the C extensions.

Additional crash-safety for adapter lookup.

Make the C functions get the cache only after resolving the
``required`` into a tuple, in case of side-effects like...clearing the
cache. This could lead to the ``cache`` object being deallocated
before we used it.

Drop the ``tuplefy`` function in favor of a direct call to
``PySequence_Tuple``. It's what the ``tuple`` constructor would do
anyway and saves a few steps.

Make sure that getting ``providedBy(super())`` and
``implementedBy(super())`` have no side effects.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The query functions now start by looking at the next class in the MRO (interfaces directly provided by the underlying object are not found).

Adapter registries automatically pick up providedBy change to start finding the correct implementations of adapters, but to make that really useful they needed to change to unpack super() arguments and pass __self__ to the factory.

Fixes #11

Unfortunately, this makes PyPy unable to build the C extensions.

Additional crash-safety for adapter lookup.

Make the C functions get the cache only after resolving the
``required`` into a tuple, in case of side-effects like...clearing the
cache. This could lead to the ``cache`` object being deallocated
before we used it.

Drop the ``tuplefy`` function in favor of a direct call to
``PySequence_Tuple``. It's what the ``tuple`` constructor would do
anyway and saves a few steps.

Make sure that getting ``providedBy(super())`` and
``implementedBy(super())`` have no side effects.
</pre>
</div>
</content>
</entry>
<entry>
<title>Find more concrete classes that are registered.</title>
<updated>2020-02-17T13:01:03+00:00</updated>
<author>
<name>Jason Madden</name>
<email>jamadden@gmail.com</email>
</author>
<published>2020-02-13T15:42:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=e9f7c53b66723cb624b8902a646d4472a645dae6'/>
<id>e9f7c53b66723cb624b8902a646d4472a645dae6</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #177 from zopefoundation/fix-signature</title>
<updated>2020-02-16T15:04:00+00:00</updated>
<author>
<name>Jens W. Klein</name>
<email>jk@kleinundpartner.at</email>
</author>
<published>2020-02-16T15:04:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=7f6f60e824ac34e2bf9ec890e6c361f57bfc823b'/>
<id>7f6f60e824ac34e2bf9ec890e6c361f57bfc823b</id>
<content type='text'>
Fix repr of "Attribute" to look like before</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix repr of "Attribute" to look like before</pre>
</div>
</content>
</entry>
<entry>
<title>Fix repr of "Attribute" to look like before</title>
<updated>2020-02-16T14:49:31+00:00</updated>
<author>
<name>Jens W. Klein</name>
<email>jk@kleinundpartner.at</email>
</author>
<published>2020-02-15T22:04:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=823faaaea1d4e508aa799cf9f893457d2f4acb11'/>
<id>823faaaea1d4e508aa799cf9f893457d2f4acb11</id>
<content type='text'>
and as usual in Python.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
and as usual in Python.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add test case for #6.</title>
<updated>2020-02-14T12:12:27+00:00</updated>
<author>
<name>Jason Madden</name>
<email>jamadden@gmail.com</email>
</author>
<published>2020-02-14T12:12:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=d49f8e205d36f1a3dceca228b3bc19d9cca57624'/>
<id>d49f8e205d36f1a3dceca228b3bc19d9cca57624</id>
<content type='text'>
It seems to be working now, so this fixes #6
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It seems to be working now, so this fixes #6
</pre>
</div>
</content>
</entry>
<entry>
<title>Simplify the string formatting rules for the Invalid exceptions.</title>
<updated>2020-02-10T14:20:12+00:00</updated>
<author>
<name>Jason Madden</name>
<email>jamadden@gmail.com</email>
</author>
<published>2020-02-10T14:20:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=e53e797787f645b20c5598fe9ffab81134309ed3'/>
<id>e53e797787f645b20c5598fe9ffab81134309ed3</id>
<content type='text'>
As per review.

Also include the actual failing implementation object in the BrokenMethodImplementation to make it easier to track down what's going on when inheritance is involved.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As per review.

Also include the actual failing implementation object in the BrokenMethodImplementation to make it easier to track down what's going on when inheritance is involved.
</pre>
</div>
</content>
</entry>
<entry>
<title>Make verifyObject/Class collect and raise all errors instead of only the first.</title>
<updated>2020-02-08T13:57:35+00:00</updated>
<author>
<name>Jason Madden</name>
<email>jamadden@gmail.com</email>
</author>
<published>2020-02-08T13:57:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=f6d2e9445d47dd104c146157065169be8df4d409'/>
<id>f6d2e9445d47dd104c146157065169be8df4d409</id>
<content type='text'>
Fixes #171.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes #171.
</pre>
</div>
</content>
</entry>
<entry>
<title>Make verification errors more readable and useful.</title>
<updated>2020-02-07T16:59:11+00:00</updated>
<author>
<name>Jason Madden</name>
<email>jamadden@gmail.com</email>
</author>
<published>2020-02-06T16:48:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=a825e5f29e98c8c84076600323ffe791531ac765'/>
<id>a825e5f29e98c8c84076600323ffe791531ac765</id>
<content type='text'>
Eliminate the trailing newlines and blank spaces (the code called them
"a stupid artifact").

Include the name of the defining interface (so the user can easily look up
any requirements on the attribute) and, for methods, the expected
signature (no more guessing about how many arguments are required!).

This is implemented by giving Attribute and Method useful reprs and strs.
Previously, they just had the defaults.

Fixes #170
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Eliminate the trailing newlines and blank spaces (the code called them
"a stupid artifact").

Include the name of the defining interface (so the user can easily look up
any requirements on the attribute) and, for methods, the expected
signature (no more guessing about how many arguments are required!).

This is implemented by giving Attribute and Method useful reprs and strs.
Previously, they just had the defaults.

Fixes #170
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix verification for methods of builtin types with pseudo-default arguments on Pypy</title>
<updated>2020-02-06T15:02:56+00:00</updated>
<author>
<name>Jason Madden</name>
<email>jamadden@gmail.com</email>
</author>
<published>2020-02-06T15:02:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=0b0e22727b52aa2e0f05884ce130524700163902'/>
<id>0b0e22727b52aa2e0f05884ce130524700163902</id>
<content type='text'>
On PyPy2, they are ignored (like on CPython), but on PyPy3 they can
actually be validated.

Fixes #118
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
On PyPy2, they are ignored (like on CPython), but on PyPy3 they can
actually be validated.

Fixes #118
</pre>
</div>
</content>
</entry>
<entry>
<title>The _empty singleton has no-op subscribe/unsubscribe methods.</title>
<updated>2020-01-28T22:04:31+00:00</updated>
<author>
<name>Jason Madden</name>
<email>jamadden@gmail.com</email>
</author>
<published>2020-01-28T22:04:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=97997956d1a17a0cfb064dfe0487291e8f8ee181'/>
<id>97997956d1a17a0cfb064dfe0487291e8f8ee181</id>
<content type='text'>
Turns out they can be called in some very strange error cases. See #162 and #163 for details.

This should fix #162 (at least the provided test case, five.intid, passes now).

It also does enough work on #163 that (a) the test can be written and run in pure-python mode, which was needed to debug it and (b) five.intid runs in pure-python mode (well, with a bunch of other small hacks to Acquisition, ExtensionClass, DocumentTemplate and AccessControl), but I won't claim that it fully fixes #163. For one thing, there are no specific tests. For another, I see more such differences.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Turns out they can be called in some very strange error cases. See #162 and #163 for details.

This should fix #162 (at least the provided test case, five.intid, passes now).

It also does enough work on #163 that (a) the test can be written and run in pure-python mode, which was needed to debug it and (b) five.intid runs in pure-python mode (well, with a bunch of other small hacks to Acquisition, ExtensionClass, DocumentTemplate and AccessControl), but I won't claim that it fully fixes #163. For one thing, there are no specific tests. For another, I see more such differences.
</pre>
</div>
</content>
</entry>
</feed>
