From 88b592fbc998220da322f6fd52bbf66ce53221bd Mon Sep 17 00:00:00 2001 From: Sebastien Robin <seb@nexedi.com> Date: Wed, 17 Sep 2014 22:02:47 +0200 Subject: [PATCH] BTreeData: fixed some minor issues with truncate --- product/ERP5Type/BTreeData.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/product/ERP5Type/BTreeData.py b/product/ERP5Type/BTreeData.py index 9a7d611824..083decb3bf 100644 --- a/product/ERP5Type/BTreeData.py +++ b/product/ERP5Type/BTreeData.py @@ -181,10 +181,11 @@ class BTreeData(Persistent): # It is not possible to drop keys as we iterate when using # iterkeys, so call minKey repeatedly. while True: - next_key = minKey(offset) - if next_key is None: - break - del tree[key] + try: + next_key = minKey(offset) + except ValueError: + break + del tree[next_key] if __name__ == '__main__': @@ -229,3 +230,9 @@ if __name__ == '__main__': data.write('ABCDE', 6) check(data, 11, 0, 11, '0123XYABCDE', [0, 5, 8, 10]) + data.truncate(7) + check(data, 7, 0, 7, '0123XYA', [0, 5]) + data.truncate(5) + check(data, 5, 0, 5, '0123X', [0]) + data.truncate(3) + check(data, 3, 0, 3, '012', [0]) -- 2.30.9