From 7b064fc4f4aa1848960a66595d0ddd780fefda7c Mon Sep 17 00:00:00 2001 From: Jason Madden Date: Mon, 17 Feb 2020 11:01:04 -0600 Subject: [PATCH] The value of using64bits was broken in OIBTree with pure python. Fix it. Also it's possible to statically know the expected value of using64bits for all included tree modules, so we don't need the (unexecuted) branch that creates (unused) test code in the *I* test modules. --- BTrees/OIBTree.py | 2 +- BTrees/tests/test_IFBTree.py | 23 +---------------------- BTrees/tests/test_IIBTree.py | 27 +-------------------------- BTrees/tests/test_IOBTree.py | 20 +------------------- BTrees/tests/test_OIBTree.py | 20 +------------------- CHANGES.rst | 2 ++ 6 files changed, 7 insertions(+), 87 deletions(-) diff --git a/BTrees/OIBTree.py b/BTrees/OIBTree.py index 04cf57b..499efe5 100644 --- a/BTrees/OIBTree.py +++ b/BTrees/OIBTree.py @@ -42,7 +42,7 @@ _BUCKET_SIZE = 60 _TREE_SIZE = 250 -using64bits = True +using64bits = False class OIBucketPy(Bucket): _to_key = _to_key diff --git a/BTrees/tests/test_IFBTree.py b/BTrees/tests/test_IFBTree.py index 3184da0..ab13814 100644 --- a/BTrees/tests/test_IFBTree.py +++ b/BTrees/tests/test_IFBTree.py @@ -23,9 +23,8 @@ from .common import NormalSetTests from .common import SetConflictTestBase from .common import SetResult -from .common import TestLongIntKeys from .common import makeBuilder -from BTrees.IIBTree import using64bits #XXX Ugly, but unavoidable + class IFBTreeInternalKeyTest(InternalKeysMappingTest, unittest.TestCase): @@ -97,26 +96,6 @@ def _makeOne(self): from BTrees.IFBTree import IFBTreePy return IFBTreePy() -if using64bits: - - class IFBTreeTest(BTreeTests, TestLongIntKeys, unittest.TestCase): - - def _makeOne(self): - from BTrees.IFBTree import IFBTree - return IFBTree() - - def getTwoValues(self): - return 0.5, 1.5 - - class IFBTreePyTest(BTreeTests, TestLongIntKeys, unittest.TestCase): - - def _makeOne(self): - from BTrees.IFBTree import IFBTreePy - return IFBTreePy() - - def getTwoValues(self): - return 0.5, 1.5 - class _TestIFBTreesBase(object): diff --git a/BTrees/tests/test_IIBTree.py b/BTrees/tests/test_IIBTree.py index 5bdea5f..d572b60 100644 --- a/BTrees/tests/test_IIBTree.py +++ b/BTrees/tests/test_IIBTree.py @@ -24,12 +24,10 @@ from .common import NormalSetTests from .common import SetConflictTestBase from .common import SetResult -from .common import TestLongIntKeys -from .common import TestLongIntValues from .common import Weighted from .common import itemsToSet from .common import makeBuilder -from BTrees.IIBTree import using64bits #XXX Ugly, but unavoidable + class IIBTreeInternalKeyTest(InternalKeysMappingTest, unittest.TestCase): @@ -130,29 +128,6 @@ def _makeOne(self): return IIBTreePy() -if using64bits: - - class IIBTreeTest(BTreeTests, TestLongIntKeys, TestLongIntValues, - unittest.TestCase): - - def _makeOne(self): - from BTrees.IIBTree import IIBTree - return IIBTree() - - def getTwoValues(self): - return 1, 2 - - class IIBTreeTest(BTreeTests, TestLongIntKeys, TestLongIntValues, - unittest.TestCase): - - def _makeOne(self): - from BTrees.IIBTree import IIBTreePy - return IIBTreePy() - - def getTwoValues(self): - return 1, 2 - - class _TestIIBTreesBase(object): def testNonIntegerKeyRaises(self): diff --git a/BTrees/tests/test_IOBTree.py b/BTrees/tests/test_IOBTree.py index 3f7eeec..021b4ea 100644 --- a/BTrees/tests/test_IOBTree.py +++ b/BTrees/tests/test_IOBTree.py @@ -25,9 +25,8 @@ from .common import SetConflictTestBase from .common import SetResult from .common import TypeTest -from .common import TestLongIntKeys from .common import makeBuilder -from BTrees.IIBTree import using64bits #XXX Ugly, but unavoidable + class IOBTreeInternalKeyTest(InternalKeysMappingTest, unittest.TestCase): @@ -100,23 +99,6 @@ def _makeOne(self): return IOBTreePy() -if using64bits: - - - class IOBTreeTest(BTreeTests, TestLongIntKeys, unittest.TestCase): - - def _makeOne(self): - from BTrees.IOBTree import IOBTree - return IOBTree() - - - class IOBTreePyTest(BTreeTests, TestLongIntKeys, unittest.TestCase): - - def _makeOne(self): - from BTrees.IOBTree import IOBTreePy - return IOBTreePy() - - class _TestIOBTreesBase(TypeTest): def _stringraises(self): diff --git a/BTrees/tests/test_OIBTree.py b/BTrees/tests/test_OIBTree.py index 2ff9e0b..6694a7c 100644 --- a/BTrees/tests/test_OIBTree.py +++ b/BTrees/tests/test_OIBTree.py @@ -22,12 +22,11 @@ from .common import NormalSetTests from .common import SetConflictTestBase from .common import SetResult -from .common import TestLongIntValues from .common import TypeTest from .common import Weighted from .common import itemsToSet from .common import makeBuilder -from BTrees.OIBTree import using64bits #XXX Ugly, but necessary + class OIBTreeInternalKeyTest(InternalKeysMappingTest, unittest.TestCase): @@ -99,23 +98,6 @@ def _makeOne(self): return OIBTreePy() -if using64bits: - - class OIBTreeTest(BTreeTests, TestLongIntValues, unittest.TestCase): - def _makeOne(self): - from BTrees.OIBTree import OIBTree - return OIBTree() - def getTwoKeys(self): - return object(), object() - - class OIBTreePyTest(BTreeTests, TestLongIntValues, unittest.TestCase): - def _makeOne(self): - from BTrees.OIBTree import OIBTreePy - return OIBTreePy() - def getTwoKeys(self): - return object(), object() - - class _TestOIBTreesBase(TypeTest): def _stringraises(self): diff --git a/CHANGES.rst b/CHANGES.rst index 54d55d0..c5ecfaa 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -6,6 +6,8 @@ - Nothing changed yet. +- Fix the value for ``BTrees.OIBTree.using64bits`` when using the pure Python + implementation (PyPy and when ``PURE_PYTHON`` is in the environment). 4.6.1 (2019-11-07) ------------------