nti.testing 4.3.0__tar.gz → 4.4.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. {nti_testing-4.3.0 → nti_testing-4.4.0}/CHANGES.rst +7 -0
  2. {nti_testing-4.3.0 → nti_testing-4.4.0}/PKG-INFO +13 -4
  3. {nti_testing-4.3.0 → nti_testing-4.4.0}/setup.py +8 -3
  4. {nti_testing-4.3.0 → nti_testing-4.4.0}/src/nti/testing/tests/test_base.py +8 -2
  5. {nti_testing-4.3.0 → nti_testing-4.4.0}/src/nti/testing/tests/test_main.py +13 -7
  6. {nti_testing-4.3.0 → nti_testing-4.4.0}/src/nti/testing/tests/test_zodb.py +23 -5
  7. {nti_testing-4.3.0 → nti_testing-4.4.0}/src/nti.testing.egg-info/PKG-INFO +13 -4
  8. {nti_testing-4.3.0 → nti_testing-4.4.0}/src/nti.testing.egg-info/requires.txt +6 -3
  9. {nti_testing-4.3.0 → nti_testing-4.4.0}/tox.ini +6 -0
  10. {nti_testing-4.3.0 → nti_testing-4.4.0}/.coveragerc +0 -0
  11. {nti_testing-4.3.0 → nti_testing-4.4.0}/.isort.cfg +0 -0
  12. {nti_testing-4.3.0 → nti_testing-4.4.0}/.nti_cover_package +0 -0
  13. {nti_testing-4.3.0 → nti_testing-4.4.0}/.pylintrc +0 -0
  14. {nti_testing-4.3.0 → nti_testing-4.4.0}/.readthedocs.yml +0 -0
  15. {nti_testing-4.3.0 → nti_testing-4.4.0}/.travis.yml +0 -0
  16. {nti_testing-4.3.0 → nti_testing-4.4.0}/COPYRIGHT.txt +0 -0
  17. {nti_testing-4.3.0 → nti_testing-4.4.0}/INSTALL +0 -0
  18. {nti_testing-4.3.0 → nti_testing-4.4.0}/LICENSE +0 -0
  19. {nti_testing-4.3.0 → nti_testing-4.4.0}/MANIFEST.in +0 -0
  20. {nti_testing-4.3.0 → nti_testing-4.4.0}/README.rst +0 -0
  21. {nti_testing-4.3.0 → nti_testing-4.4.0}/TODO +0 -0
  22. {nti_testing-4.3.0 → nti_testing-4.4.0}/doc-requirements.txt +0 -0
  23. {nti_testing-4.3.0 → nti_testing-4.4.0}/docs/_static/custom.css +0 -0
  24. {nti_testing-4.3.0 → nti_testing-4.4.0}/docs/api.rst +0 -0
  25. {nti_testing-4.3.0 → nti_testing-4.4.0}/docs/base.rst +0 -0
  26. {nti_testing-4.3.0 → nti_testing-4.4.0}/docs/changelog.rst +0 -0
  27. {nti_testing-4.3.0 → nti_testing-4.4.0}/docs/conf.py +0 -0
  28. {nti_testing-4.3.0 → nti_testing-4.4.0}/docs/index.rst +0 -0
  29. {nti_testing-4.3.0 → nti_testing-4.4.0}/docs/layers.rst +0 -0
  30. {nti_testing-4.3.0 → nti_testing-4.4.0}/docs/matchers.rst +0 -0
  31. {nti_testing-4.3.0 → nti_testing-4.4.0}/docs/time.rst +0 -0
  32. {nti_testing-4.3.0 → nti_testing-4.4.0}/docs/zodb.rst +0 -0
  33. {nti_testing-4.3.0 → nti_testing-4.4.0}/pyproject.toml +0 -0
  34. {nti_testing-4.3.0 → nti_testing-4.4.0}/setup.cfg +0 -0
  35. {nti_testing-4.3.0 → nti_testing-4.4.0}/src/nti/__init__.py +0 -0
  36. {nti_testing-4.3.0 → nti_testing-4.4.0}/src/nti/testing/__init__.py +0 -0
  37. {nti_testing-4.3.0 → nti_testing-4.4.0}/src/nti/testing/base.py +0 -0
  38. {nti_testing-4.3.0 → nti_testing-4.4.0}/src/nti/testing/layers/__init__.py +0 -0
  39. {nti_testing-4.3.0 → nti_testing-4.4.0}/src/nti/testing/layers/cleanup.py +0 -0
  40. {nti_testing-4.3.0 → nti_testing-4.4.0}/src/nti/testing/layers/postgres.py +0 -0
  41. {nti_testing-4.3.0 → nti_testing-4.4.0}/src/nti/testing/layers/tests/__init__.py +0 -0
  42. {nti_testing-4.3.0 → nti_testing-4.4.0}/src/nti/testing/layers/tests/test_postgres.py +0 -0
  43. {nti_testing-4.3.0 → nti_testing-4.4.0}/src/nti/testing/layers/zope.py +0 -0
  44. {nti_testing-4.3.0 → nti_testing-4.4.0}/src/nti/testing/matchers.py +0 -0
  45. {nti_testing-4.3.0 → nti_testing-4.4.0}/src/nti/testing/mock.py +0 -0
  46. {nti_testing-4.3.0 → nti_testing-4.4.0}/src/nti/testing/tests/__init__.py +0 -0
  47. {nti_testing-4.3.0 → nti_testing-4.4.0}/src/nti/testing/tests/test_component_cleanup_broken.txt +0 -0
  48. {nti_testing-4.3.0 → nti_testing-4.4.0}/src/nti/testing/tests/test_layers.py +0 -0
  49. {nti_testing-4.3.0 → nti_testing-4.4.0}/src/nti/testing/tests/test_matchers.py +0 -0
  50. {nti_testing-4.3.0 → nti_testing-4.4.0}/src/nti/testing/tests/test_time.py +0 -0
  51. {nti_testing-4.3.0 → nti_testing-4.4.0}/src/nti/testing/time.py +0 -0
  52. {nti_testing-4.3.0 → nti_testing-4.4.0}/src/nti/testing/zodb.py +0 -0
  53. {nti_testing-4.3.0 → nti_testing-4.4.0}/src/nti.testing.egg-info/SOURCES.txt +0 -0
  54. {nti_testing-4.3.0 → nti_testing-4.4.0}/src/nti.testing.egg-info/dependency_links.txt +0 -0
  55. {nti_testing-4.3.0 → nti_testing-4.4.0}/src/nti.testing.egg-info/top_level.txt +0 -0
  56. {nti_testing-4.3.0 → nti_testing-4.4.0}/src/nti.testing.egg-info/zip-safe +0 -0
@@ -2,6 +2,13 @@
2
2
  Changes
3
3
  =========
4
4
 
5
+ 4.4.0 (2025-11-14)
6
+ ==================
7
+
8
+ - Move ZODB and related dependencies to the optional 'zodb' extra.
9
+ - Add support for Python 3.14.
10
+
11
+
5
12
  4.3.0 (2025-04-22)
6
13
  ==================
7
14
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nti.testing
3
- Version: 4.3.0
3
+ Version: 4.4.0
4
4
  Summary: Support for testing code
5
5
  Home-page: https://github.com/OpenNTI/nti.testing
6
6
  Author: Jason Madden
@@ -18,13 +18,13 @@ Classifier: Programming Language :: Python :: 3.10
18
18
  Classifier: Programming Language :: Python :: 3.11
19
19
  Classifier: Programming Language :: Python :: 3.12
20
20
  Classifier: Programming Language :: Python :: 3.13
21
+ Classifier: Programming Language :: Python :: 3.14
21
22
  Classifier: Programming Language :: Python :: Implementation :: CPython
22
23
  Classifier: Programming Language :: Python :: Implementation :: PyPy
23
24
  Classifier: Topic :: Software Development :: Testing
24
25
  Classifier: Framework :: Zope3
25
26
  Requires-Python: >=3.10
26
27
  License-File: LICENSE
27
- Requires-Dist: ZODB>=5.6.0
28
28
  Requires-Dist: zope.interface>=5.4.0
29
29
  Requires-Dist: pyhamcrest
30
30
  Requires-Dist: six
@@ -35,17 +35,19 @@ Requires-Dist: zope.dottedname
35
35
  Requires-Dist: zope.exceptions
36
36
  Requires-Dist: zope.schema
37
37
  Requires-Dist: zope.testing
38
+ Provides-Extra: zodb
39
+ Requires-Dist: ZODB>=5.6.0; extra == "zodb"
38
40
  Provides-Extra: test
39
41
  Requires-Dist: Acquisition; extra == "test"
40
- Requires-Dist: zope.site; extra == "test"
41
42
  Requires-Dist: zope.testrunner; extra == "test"
42
43
  Requires-Dist: testgres>=1.11; extra == "test"
43
44
  Requires-Dist: psycopg2-binary; platform_python_implementation != "PyPy" and extra == "test"
45
+ Provides-Extra: test-zodb
46
+ Requires-Dist: zope.site; extra == "test-zodb"
44
47
  Provides-Extra: docs
45
48
  Requires-Dist: Sphinx; extra == "docs"
46
49
  Requires-Dist: furo; extra == "docs"
47
50
  Requires-Dist: Acquisition; extra == "docs"
48
- Requires-Dist: zope.site; extra == "docs"
49
51
  Requires-Dist: zope.testrunner; extra == "docs"
50
52
  Requires-Dist: testgres>=1.11; extra == "docs"
51
53
  Requires-Dist: psycopg2-binary; platform_python_implementation != "PyPy" and extra == "docs"
@@ -320,6 +322,13 @@ ZODB in `nti.testing.zodb`. See the API documentation for details.
320
322
  Changes
321
323
  =========
322
324
 
325
+ 4.4.0 (2025-11-14)
326
+ ==================
327
+
328
+ - Move ZODB and related dependencies to the optional 'zodb' extra.
329
+ - Add support for Python 3.14.
330
+
331
+
323
332
  4.3.0 (2025-04-22)
324
333
  ==================
325
334
 
@@ -6,14 +6,13 @@ from setuptools import setup
6
6
  from setuptools import find_namespace_packages
7
7
 
8
8
 
9
- version = '4.3.0'
9
+ version = '4.4.0'
10
10
 
11
11
  entry_points = {
12
12
  }
13
13
 
14
14
  TESTS_REQUIRE = [
15
15
  'Acquisition',
16
- 'zope.site',
17
16
  'zope.testrunner',
18
17
  'testgres >= 1.11',
19
18
  'psycopg2-binary; python_implementation != "PyPy"',
@@ -47,6 +46,7 @@ setup(
47
46
  'Programming Language :: Python :: 3.11',
48
47
  'Programming Language :: Python :: 3.12',
49
48
  'Programming Language :: Python :: 3.13',
49
+ 'Programming Language :: Python :: 3.14',
50
50
  'Programming Language :: Python :: Implementation :: CPython',
51
51
  'Programming Language :: Python :: Implementation :: PyPy',
52
52
  'Topic :: Software Development :: Testing',
@@ -56,7 +56,6 @@ setup(
56
56
  packages=find_namespace_packages(where='src'),
57
57
  package_dir={'': 'src'},
58
58
  install_requires=[
59
- 'ZODB >= 5.6.0',
60
59
  # Error messages changed in 5.1, reprs changed <= 5.4
61
60
  'zope.interface >= 5.4.0',
62
61
  'pyhamcrest',
@@ -72,7 +71,13 @@ setup(
72
71
  entry_points=entry_points,
73
72
  include_package_data=True,
74
73
  extras_require={
74
+ 'zodb': [
75
+ 'ZODB >= 5.6.0',
76
+ ],
75
77
  'test': TESTS_REQUIRE,
78
+ 'test-zodb': [
79
+ 'zope.site',
80
+ ],
76
81
  'docs': [
77
82
  'Sphinx',
78
83
  'furo',
@@ -89,7 +89,10 @@ class TestBase(unittest.TestCase):
89
89
 
90
90
 
91
91
  def test_configuring_base(self):
92
- import zope.traversing.tests.test_traverser
92
+ try:
93
+ import zope.traversing.tests.test_traverser
94
+ except ModuleNotFoundError:
95
+ self.skipTest('zope.traversing not installed')
93
96
  class MyTest(base.ConfiguringTestBase):
94
97
  set_up_packages = ('zope.component',
95
98
  ('configure.zcml', 'zope.component'),
@@ -104,7 +107,10 @@ class TestBase(unittest.TestCase):
104
107
  mt.tearDown() # pylint:disable=no-value-for-parameter
105
108
 
106
109
  def test_shared_configuring_base(self):
107
- import zope.traversing.tests.test_traverser
110
+ try:
111
+ import zope.traversing.tests.test_traverser
112
+ except ModuleNotFoundError:
113
+ self.skipTest('zope.traversing not installed')
108
114
  class MyTest(base.SharedConfiguringTestBase):
109
115
  layer = None # replaced by metaclass
110
116
  set_up_packages = ('zope.component',
@@ -32,16 +32,22 @@ def test_suite():
32
32
  here = os.path.dirname(__file__)
33
33
 
34
34
  suite = unittest.defaultTestLoader.loadTestsFromName(__name__)
35
- suite.addTest(doctest.DocFileSuite(
36
- 'test_component_cleanup_broken.txt'))
35
+ try:
36
+ import zope.site as has_zope_site
37
+ except ModuleNotFoundError:
38
+ has_zope_site = None
39
+ else:
40
+ suite.addTest(doctest.DocFileSuite(
41
+ 'test_component_cleanup_broken.txt'))
37
42
 
38
43
  readmedir = here
39
44
  while not os.path.exists(os.path.join(readmedir, 'setup.py')):
40
45
  readmedir = os.path.dirname(readmedir)
41
46
  readme = os.path.join(readmedir, 'README.rst')
42
- suite.addTest(doctest.DocFileSuite(
43
- readme,
44
- module_relative=False,
45
- optionflags=doctest.ELLIPSIS,
46
- ))
47
+ if has_zope_site:
48
+ suite.addTest(doctest.DocFileSuite(
49
+ readme,
50
+ module_relative=False,
51
+ optionflags=doctest.ELLIPSIS,
52
+ ))
47
53
  return suite
@@ -14,7 +14,13 @@ import unittest
14
14
  import transaction
15
15
  from transaction.interfaces import NoTransaction
16
16
  from zope import interface
17
- from nti.testing import zodb
17
+ try:
18
+ from nti.testing import zodb
19
+ base_mock_db_trans = zodb.mock_db_trans
20
+ except ModuleNotFoundError as ex:
21
+ assert ex.name == 'ZODB'
22
+ zodb = None
23
+ base_mock_db_trans = object
18
24
 
19
25
  # pylint:disable=protected-access,pointless-string-statement
20
26
 
@@ -41,7 +47,7 @@ class MockConn(object):
41
47
  self.minimized = True
42
48
 
43
49
 
44
- class MockDBTrans(zodb.mock_db_trans):
50
+ class MockDBTrans(base_mock_db_trans):
45
51
 
46
52
  def __init__(self, db=None):
47
53
  if db is None:
@@ -52,6 +58,8 @@ class MockDBTrans(zodb.mock_db_trans):
52
58
  class TestMockDBTrans(unittest.TestCase):
53
59
 
54
60
  def setUp(self):
61
+ if zodb is None:
62
+ self.skipTest("ZODB not installed")
55
63
  self._was_explicit = transaction.manager.explicit
56
64
  transaction.manager.explicit = False
57
65
 
@@ -226,7 +234,7 @@ class TestMockDBTrans(unittest.TestCase):
226
234
  class MyMock(MockDBTrans):
227
235
  seen_tx = None
228
236
  aborted = False
229
- def on_connection_opened(self, conn):
237
+ def on_connection_opened(self, _conn):
230
238
  # pylint:disable=no-member
231
239
  self.seen_tx = self._mock_db_trans__current_transaction
232
240
  abort = self.seen_tx.abort
@@ -255,7 +263,13 @@ class TestMockDBTrans(unittest.TestCase):
255
263
 
256
264
  class TestZODBLayer(unittest.TestCase):
257
265
 
258
- layer = zodb.ZODBLayer
266
+ if zodb is not None:
267
+ layer = zodb.ZODBLayer
268
+
269
+ def setUp(self):
270
+ super().setUp()
271
+ if zodb is None:
272
+ self.skipTest("ZODB not installed")
259
273
 
260
274
  def test_registration(self):
261
275
  from ZODB.interfaces import IDatabase
@@ -288,10 +302,14 @@ class Object(object):
288
302
  pass
289
303
 
290
304
  class TestResetDbCaches(unittest.TestCase):
291
- layer = zodb.ZODBLayer
305
+
306
+ if zodb is not None:
307
+ layer = zodb.ZODBLayer
292
308
 
293
309
  def setUp(self):
294
310
  super().setUp()
311
+ if zodb is None:
312
+ self.skipTest("ZODB not installed")
295
313
  gc.disable()
296
314
 
297
315
  def tearDown(self):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nti.testing
3
- Version: 4.3.0
3
+ Version: 4.4.0
4
4
  Summary: Support for testing code
5
5
  Home-page: https://github.com/OpenNTI/nti.testing
6
6
  Author: Jason Madden
@@ -18,13 +18,13 @@ Classifier: Programming Language :: Python :: 3.10
18
18
  Classifier: Programming Language :: Python :: 3.11
19
19
  Classifier: Programming Language :: Python :: 3.12
20
20
  Classifier: Programming Language :: Python :: 3.13
21
+ Classifier: Programming Language :: Python :: 3.14
21
22
  Classifier: Programming Language :: Python :: Implementation :: CPython
22
23
  Classifier: Programming Language :: Python :: Implementation :: PyPy
23
24
  Classifier: Topic :: Software Development :: Testing
24
25
  Classifier: Framework :: Zope3
25
26
  Requires-Python: >=3.10
26
27
  License-File: LICENSE
27
- Requires-Dist: ZODB>=5.6.0
28
28
  Requires-Dist: zope.interface>=5.4.0
29
29
  Requires-Dist: pyhamcrest
30
30
  Requires-Dist: six
@@ -35,17 +35,19 @@ Requires-Dist: zope.dottedname
35
35
  Requires-Dist: zope.exceptions
36
36
  Requires-Dist: zope.schema
37
37
  Requires-Dist: zope.testing
38
+ Provides-Extra: zodb
39
+ Requires-Dist: ZODB>=5.6.0; extra == "zodb"
38
40
  Provides-Extra: test
39
41
  Requires-Dist: Acquisition; extra == "test"
40
- Requires-Dist: zope.site; extra == "test"
41
42
  Requires-Dist: zope.testrunner; extra == "test"
42
43
  Requires-Dist: testgres>=1.11; extra == "test"
43
44
  Requires-Dist: psycopg2-binary; platform_python_implementation != "PyPy" and extra == "test"
45
+ Provides-Extra: test-zodb
46
+ Requires-Dist: zope.site; extra == "test-zodb"
44
47
  Provides-Extra: docs
45
48
  Requires-Dist: Sphinx; extra == "docs"
46
49
  Requires-Dist: furo; extra == "docs"
47
50
  Requires-Dist: Acquisition; extra == "docs"
48
- Requires-Dist: zope.site; extra == "docs"
49
51
  Requires-Dist: zope.testrunner; extra == "docs"
50
52
  Requires-Dist: testgres>=1.11; extra == "docs"
51
53
  Requires-Dist: psycopg2-binary; platform_python_implementation != "PyPy" and extra == "docs"
@@ -320,6 +322,13 @@ ZODB in `nti.testing.zodb`. See the API documentation for details.
320
322
  Changes
321
323
  =========
322
324
 
325
+ 4.4.0 (2025-11-14)
326
+ ==================
327
+
328
+ - Move ZODB and related dependencies to the optional 'zodb' extra.
329
+ - Add support for Python 3.14.
330
+
331
+
323
332
  4.3.0 (2025-04-22)
324
333
  ==================
325
334
 
@@ -1,4 +1,3 @@
1
- ZODB>=5.6.0
2
1
  zope.interface>=5.4.0
3
2
  pyhamcrest
4
3
  six
@@ -14,7 +13,6 @@ zope.testing
14
13
  Sphinx
15
14
  furo
16
15
  Acquisition
17
- zope.site
18
16
  zope.testrunner
19
17
  testgres>=1.11
20
18
 
@@ -23,10 +21,12 @@ psycopg2-binary
23
21
 
24
22
  [test]
25
23
  Acquisition
26
- zope.site
27
24
  zope.testrunner
28
25
  testgres>=1.11
29
26
 
27
+ [test-zodb]
28
+ zope.site
29
+
30
30
  [test:platform_python_implementation != "PyPy"]
31
31
  psycopg2-binary
32
32
 
@@ -35,3 +35,6 @@ testgres>=1.11
35
35
 
36
36
  [testgres:platform_python_implementation != "PyPy"]
37
37
  psycopg2-binary
38
+
39
+ [zodb]
40
+ ZODB>=5.6.0
@@ -4,6 +4,8 @@ envlist = py38,py39,py310,py311,py312,pypy3,coverage,docs
4
4
  [testenv]
5
5
  extras =
6
6
  test
7
+ zodb
8
+ test-zodb
7
9
  commands =
8
10
  zope-testrunner --test-path=src --auto-color --auto-progress [] # substitute with tox positional args
9
11
  setenv =
@@ -20,6 +22,10 @@ commands =
20
22
  deps =
21
23
  coverage
22
24
 
25
+ [testenv:py314]
26
+ extras =
27
+ test
28
+
23
29
  [testenv:docs]
24
30
  commands =
25
31
  sphinx-build -b html -d docs/_build/doctrees docs docs/_build/html
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes