Skip to content

Commit 53c1f45

Browse files
committed
Merged revision 4430 from branch 1.1: a bug was fixed in SelectResults slicing
that prevented to slice a slice (my_results[:20][1:5]). git-svn-id: http://svn.colorstudy.com/SQLObject/trunk@4431 95a46c32-92d2-0310-94a5-8d71aeb3d4b3
1 parent e7d3cb7 commit 53c1f45

3 files changed

Lines changed: 17 additions & 12 deletions

File tree

docs/News.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,12 @@ Source code and internals
5454

5555
* All 'mydict.has_key(name)' checks were replaced with 'name in mydict'.
5656

57+
SQLObject 1.0.2
58+
===============
59+
60+
* A bug was fixed in SelectResults slicing that prevented to slice a
61+
slice (my_results[:20][1:5]).
62+
5763
SQLObject 1.0.1
5864
===============
5965

sqlobject/sresults.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1-
import sqlbuilder
21
import dbconnection
3-
import main
42
import joins
3+
import main
4+
import sqlbuilder
5+
6+
__all__ = ['SelectResults']
57

68
class SelectResults(object):
79
IterationClass = dbconnection.Iteration
@@ -152,8 +154,8 @@ def __getitem__(self, value):
152154
end = start
153155
else:
154156
end = value.stop + self.ops.get('start', 0)
155-
if self.ops.get('end', None) is not None \
156-
and value['end'] < end:
157+
if self.ops.get('end', None) is not None and \
158+
self.ops['end'] < end:
157159
# truncated by previous slice:
158160
end = self.ops['end']
159161
else:
@@ -342,5 +344,3 @@ def _throughToRelatedJoin(self, join):
342344
clause = sqlbuilder.AND(otherClass.q.id == getattr(intTable, join.otherColumn),
343345
getattr(intTable, colName) == query.q.id)
344346
return otherClass, clause
345-
346-
__all__ = ['SelectResults']

sqlobject/tests/test_slice.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,31 +21,30 @@ def counterEqual(self, counters, value):
2121
return
2222
assert [c.number for c in counters] == value
2323

24-
def test_1(self):
24+
def test_slice(self):
2525
self.counterEqual(
2626
Counter.select(None, orderBy='number'), range(100))
2727

28-
def test_2(self):
2928
self.counterEqual(
3029
Counter.select(None, orderBy='number')[10:20],
3130
range(10, 20))
3231

33-
def test_3(self):
3432
self.counterEqual(
3533
Counter.select(None, orderBy='number')[20:30][:5],
3634
range(20, 25))
3735

38-
def test_4(self):
36+
self.counterEqual(
37+
Counter.select(None, orderBy='number')[20:30][1:5],
38+
range(21, 25))
39+
3940
self.counterEqual(
4041
Counter.select(None, orderBy='number')[:-10],
4142
range(0, 90))
4243

43-
def test_5(self):
4444
self.counterEqual(
4545
Counter.select(None, orderBy='number', reversed=True),
4646
range(99, -1, -1))
4747

48-
def test_6(self):
4948
self.counterEqual(
5049
Counter.select(None, orderBy='-number'),
5150
range(99, -1, -1))

0 commit comments

Comments
 (0)