Skip to content

Commit cdf993c

Browse files
committed
Update to native namespace.
Need to change tests because of changed discover path. (Using only `src` as before did not run any tests. discover does not seem to support PEP-420 namespace packages very well. :-( )
1 parent 68fb720 commit cdf993c

File tree

10 files changed

+34
-30
lines changed

10 files changed

+34
-30
lines changed

.meta.toml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ with-macos = false
1616
use-flake8 = true
1717
testenv-commands = [
1818
"pip install -U -e .[test]",
19-
"coverage run -p -m unittest discover -s src {posargs}",
19+
"coverage run -p -m unittest discover -s src/zope {posargs}",
2020
]
2121
testenv-setenv = [
2222
"ZOPE_INTERFACE_STRICT_IRO=1",
@@ -61,6 +61,9 @@ additional-ignores = [
6161
"docs/_build/html/_static/scripts/*",
6262
]
6363

64+
[coverage-run]
65+
source = "src/zope"
66+
6467
[github-actions]
6568
additional-install = [
6669
"- name: Install zope.interface",

pyproject.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
#
21
# Generated from:
32
# https://github.com/zopefoundation/meta/tree/master/config/c-code
43

@@ -11,7 +10,7 @@ build-backend = "setuptools.build_meta"
1110

1211
[tool.coverage.run]
1312
branch = true
14-
source = ["zope.interface"]
13+
source = ["src/zope"]
1514
relative_files = true
1615

1716
[tool.coverage.report]

setup.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
from distutils.errors import DistutilsPlatformError
2727

2828
from setuptools import Extension
29-
from setuptools import find_packages
3029
from setuptools import setup
3130
from setuptools.command.build_ext import build_ext
3231

@@ -128,9 +127,10 @@ def read(*rnames):
128127
"Framework :: Zope :: 3",
129128
"Topic :: Software Development :: Libraries :: Python Modules",
130129
],
131-
packages=find_packages('src'),
130+
# we need the following two parameters because we compile C code,
131+
# otherwise only the shared library is installed:
132132
package_dir={'': 'src'},
133-
namespace_packages=["zope"],
133+
packages=['zope.interface', 'zope.interface.common'],
134134
cmdclass={
135135
'build_ext': optional_build_ext,
136136
},

src/zope/__init__.py

Lines changed: 0 additions & 1 deletion
This file was deleted.

src/zope/interface/tests/test_declarations.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -680,7 +680,7 @@ def __call__(self):
680680
foo.__name__ = 'foo'
681681
spec = self._callFUT(foo)
682682
self.assertEqual(spec.__name__,
683-
'zope.interface.tests.test_declarations.foo')
683+
'interface.tests.test_declarations.foo')
684684
self.assertIs(spec.inherit, foo)
685685
self.assertIs(foo.__implemented__, spec)
686686
self.assertIs(
@@ -696,7 +696,7 @@ class Foo:
696696

697697
spec = self._callFUT(Foo)
698698
self.assertEqual(spec.__name__,
699-
'zope.interface.tests.test_declarations.Foo')
699+
'interface.tests.test_declarations.Foo')
700700
self.assertIs(spec.inherit, Foo)
701701
self.assertIs(Foo.__implemented__, spec)
702702
self.assertIsInstance(
@@ -1177,7 +1177,7 @@ class Foo:
11771177
self.assertIs(returned, foo)
11781178
spec = foo.__implemented__ # pylint:disable=no-member
11791179
self.assertEqual(
1180-
spec.__name__, 'zope.interface.tests.test_declarations.?'
1180+
spec.__name__, 'interface.tests.test_declarations.?'
11811181
)
11821182
self.assertIsNone(spec.inherit,)
11831183
self.assertIs(foo.__implemented__, spec) # pylint:disable=no-member
@@ -1436,7 +1436,7 @@ def test__repr__directlyProvides_module(self):
14361436
self.assertEqual(
14371437
repr(provides),
14381438
"directlyProvides(('zope.interface.tests.dummy', "
1439-
"'zope.interface.tests.test_declarations'), "
1439+
"'interface.tests.test_declarations'), "
14401440
"IFoo, IBar)"
14411441
)
14421442

src/zope/interface/tests/test_exceptions.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ def test___str__(self):
4040
self.assertEqual(
4141
str(dni),
4242
"An object has failed to implement interface "
43-
"zope.interface.tests.test_exceptions.IDummy: "
43+
"interface.tests.test_exceptions.IDummy: "
4444
"Does not declaratively implement the interface."
4545
)
4646

@@ -49,7 +49,7 @@ def test___str__w_candidate(self):
4949
self.assertEqual(
5050
str(dni),
5151
"The object 'candidate' has failed to implement interface "
52-
"zope.interface.tests.test_exceptions.IDummy: "
52+
"interface.tests.test_exceptions.IDummy: "
5353
"Does not declaratively implement the interface."
5454
)
5555

@@ -69,15 +69,15 @@ def test___str__(self):
6969
self.assertEqual(
7070
str(dni),
7171
'An object has failed to implement interface '
72-
'zope.interface.tests.test_exceptions.IDummy: '
72+
'interface.tests.test_exceptions.IDummy: '
7373
"The 'missing' attribute was not provided.")
7474

7575
def test___str__w_candidate(self):
7676
dni = self._makeOne('candidate')
7777
self.assertEqual(
7878
str(dni),
7979
'The object \'candidate\' has failed to implement interface '
80-
'zope.interface.tests.test_exceptions.IDummy: '
80+
'interface.tests.test_exceptions.IDummy: '
8181
"The 'missing' attribute was not provided.")
8282

8383

@@ -166,7 +166,7 @@ def test__str__(self):
166166
self.assertEqual(
167167
str(dni),
168168
"The object 'target' has failed to implement interface "
169-
"zope.interface.tests.test_exceptions.IDummy:\n"
169+
"interface.tests.test_exceptions.IDummy:\n"
170170
" The contract of 'aMethod' is violated because I said so\n"
171171
" Regular exception"
172172
)
@@ -183,7 +183,7 @@ def test__repr__(self):
183183
self.assertEqual(
184184
repr(dni),
185185
"MultipleInvalid("
186-
"<InterfaceClass zope.interface.tests.test_exceptions.IDummy>,"
186+
"<InterfaceClass interface.tests.test_exceptions.IDummy>,"
187187
" 'target',"
188188
" (BrokenMethodImplementation('aMethod', 'I said so'),"
189189
" Exception('Regular', 'exception')))"

src/zope/interface/tests/test_interface.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1175,7 +1175,7 @@ def test___hash___normal(self):
11751175
iface = self._makeOne('HashMe')
11761176
self.assertEqual(
11771177
hash(iface),
1178-
hash(('HashMe', 'zope.interface.tests.test_interface'))
1178+
hash(('HashMe', 'interface.tests.test_interface'))
11791179
)
11801180

11811181
def test___hash___missing_required_attrs(self):

src/zope/interface/tests/test_ro.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -298,17 +298,17 @@ def _check_handler_complex_diamond(self):
298298

299299
expected = """\
300300
Object <InterfaceClass {name}> has different legacy and C3 MROs:
301-
Legacy RO (len=7) C3 RO (len=7; inconsistent=no)
302-
==================================================================
303-
zope.interface.tests.test_ro.A zope.interface.tests.test_ro.A
304-
zope.interface.tests.test_ro.B zope.interface.tests.test_ro.B
305-
- zope.interface.tests.test_ro.E
306-
zope.interface.tests.test_ro.C zope.interface.tests.test_ro.C
307-
zope.interface.tests.test_ro.D zope.interface.tests.test_ro.D
308-
+ zope.interface.tests.test_ro.E
309-
zope.interface.tests.test_ro.F zope.interface.tests.test_ro.F
310-
zope.interface.Interface zope.interface.Interface""".format(
311-
name="zope.interface.tests.test_ro.A"
301+
Legacy RO (len=7) C3 RO (len=7; inconsistent=no)
302+
========================================================
303+
interface.tests.test_ro.A interface.tests.test_ro.A
304+
interface.tests.test_ro.B interface.tests.test_ro.B
305+
- interface.tests.test_ro.E
306+
interface.tests.test_ro.C interface.tests.test_ro.C
307+
interface.tests.test_ro.D interface.tests.test_ro.D
308+
+ interface.tests.test_ro.E
309+
interface.tests.test_ro.F interface.tests.test_ro.F
310+
zope.interface.Interface zope.interface.Interface""".format(
311+
name="interface.tests.test_ro.A"
312312
)
313313

314314
self.assertEqual(

src/zope/interface/tests/test_sorting.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,9 @@ def test_w_equal_names(self):
5959
# interfaces with equal names but different modules should sort by
6060
# module name
6161
from zope.interface.tests.m1 import I1 as m1_I1
62+
# We need to import I1 again to get a module path starting with `zope`
63+
# instead of `interfaces`.
64+
from zope.interface.tests.test_sorting import I1
6265
iface_list = [I1, m1_I1]
6366
iface_list.sort()
6467
self.assertEqual(iface_list, [m1_I1, I1])

tox.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ setenv =
2626
ZOPE_INTERFACE_STRICT_IRO=1
2727
commands =
2828
pip install -U -e .[test]
29-
coverage run -p -m unittest discover -s src {posargs}
29+
coverage run -p -m unittest discover -s src/zope {posargs}
3030
sphinx-build -b doctest -d {envdir}/.cache/doctrees docs {envdir}/.cache/doctest
3131
extras =
3232
test

0 commit comments

Comments
 (0)