mirror of https://github.com/python/cpython.git
Fix test_bsddb3 (along with something bsddb) to work with dict views.
This commit is contained in:
parent
5b8d24a7f7
commit
0072e43d29
|
@ -546,7 +546,7 @@ def __Select(self, table, columns, conditions):
|
||||||
self.__load_column_info(table)
|
self.__load_column_info(table)
|
||||||
if columns is None:
|
if columns is None:
|
||||||
columns = self.tablecolumns[table]
|
columns = self.tablecolumns[table]
|
||||||
for column in (columns + conditions.keys()):
|
for column in (columns + list(conditions.keys())):
|
||||||
if not self.__tablecolumns[table].count(column):
|
if not self.__tablecolumns[table].count(column):
|
||||||
raise TableDBError, "unknown column: %r" % (column,)
|
raise TableDBError, "unknown column: %r" % (column,)
|
||||||
|
|
||||||
|
@ -580,7 +580,7 @@ def cmp_conditions(atuple, btuple):
|
||||||
# leave all unknown condition callables alone as equals
|
# leave all unknown condition callables alone as equals
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
conditionlist = conditions.items()
|
conditionlist = list(conditions.items())
|
||||||
conditionlist.sort(cmp_conditions)
|
conditionlist.sort(cmp_conditions)
|
||||||
|
|
||||||
# Apply conditions to column data to find what we want
|
# Apply conditions to column data to find what we want
|
||||||
|
|
|
@ -76,6 +76,7 @@ def test01(self):
|
||||||
|
|
||||||
values = self.tdb.Select(
|
values = self.tdb.Select(
|
||||||
tabname, [colname], conditions={colname: None})
|
tabname, [colname], conditions={colname: None})
|
||||||
|
values = list(values)
|
||||||
|
|
||||||
colval = pickle.loads(values[0][colname])
|
colval = pickle.loads(values[0][colname])
|
||||||
assert(colval > 3.141 and colval < 3.142)
|
assert(colval > 3.141 and colval < 3.142)
|
||||||
|
@ -102,6 +103,7 @@ def test02(self):
|
||||||
|
|
||||||
values = self.tdb.Select(tabname, [col2],
|
values = self.tdb.Select(tabname, [col2],
|
||||||
conditions={col0: lambda x: pickle.loads(x) >= 8})
|
conditions={col0: lambda x: pickle.loads(x) >= 8})
|
||||||
|
values = list(values)
|
||||||
|
|
||||||
assert len(values) == 2
|
assert len(values) == 2
|
||||||
if values[0]['Species'] == 'Penguin' :
|
if values[0]['Species'] == 'Penguin' :
|
||||||
|
@ -179,11 +181,13 @@ def test03(self):
|
||||||
values = self.tdb.Select(
|
values = self.tdb.Select(
|
||||||
tabname, ['a', 'd', 'b'],
|
tabname, ['a', 'd', 'b'],
|
||||||
conditions={'e': dbtables.PrefixCond('Fuzzy')})
|
conditions={'e': dbtables.PrefixCond('Fuzzy')})
|
||||||
|
values = list(values)
|
||||||
assert len(values) == 1
|
assert len(values) == 1
|
||||||
assert values[0]['d'] == None
|
assert values[0]['d'] == None
|
||||||
|
|
||||||
values = self.tdb.Select(tabname, ['b'],
|
values = self.tdb.Select(tabname, ['b'],
|
||||||
conditions={'c': lambda c: c == 'meep'})
|
conditions={'c': lambda c: c == 'meep'})
|
||||||
|
values = list(values)
|
||||||
assert len(values) == 1
|
assert len(values) == 1
|
||||||
assert values[0]['b'] == "bad"
|
assert values[0]['b'] == "bad"
|
||||||
|
|
||||||
|
@ -272,6 +276,7 @@ def test_CondObjs(self):
|
||||||
values = self.tdb.Select(
|
values = self.tdb.Select(
|
||||||
tabname, ['p', 'e'],
|
tabname, ['p', 'e'],
|
||||||
conditions={'e': dbtables.PrefixCond('the l')})
|
conditions={'e': dbtables.PrefixCond('the l')})
|
||||||
|
values = list(values)
|
||||||
assert len(values) == 2, values
|
assert len(values) == 2, values
|
||||||
assert values[0]['e'] == values[1]['e'], values
|
assert values[0]['e'] == values[1]['e'], values
|
||||||
assert values[0]['p'] != values[1]['p'], values
|
assert values[0]['p'] != values[1]['p'], values
|
||||||
|
@ -279,6 +284,7 @@ def test_CondObjs(self):
|
||||||
values = self.tdb.Select(
|
values = self.tdb.Select(
|
||||||
tabname, ['d', 'a'],
|
tabname, ['d', 'a'],
|
||||||
conditions={'a': dbtables.LikeCond('%aardvark%')})
|
conditions={'a': dbtables.LikeCond('%aardvark%')})
|
||||||
|
values = list(values)
|
||||||
assert len(values) == 1, values
|
assert len(values) == 1, values
|
||||||
assert values[0]['d'] == "is for dog", values
|
assert values[0]['d'] == "is for dog", values
|
||||||
assert values[0]['a'] == "is for aardvark", values
|
assert values[0]['a'] == "is for aardvark", values
|
||||||
|
@ -290,6 +296,7 @@ def test_CondObjs(self):
|
||||||
'd':dbtables.ExactCond('is for dog'),
|
'd':dbtables.ExactCond('is for dog'),
|
||||||
'c':dbtables.PrefixCond('is for'),
|
'c':dbtables.PrefixCond('is for'),
|
||||||
'p':lambda s: not s})
|
'p':lambda s: not s})
|
||||||
|
values = list(values)
|
||||||
assert len(values) == 1, values
|
assert len(values) == 1, values
|
||||||
assert values[0]['d'] == "is for dog", values
|
assert values[0]['d'] == "is for dog", values
|
||||||
assert values[0]['a'] == "is for aardvark", values
|
assert values[0]['a'] == "is for aardvark", values
|
||||||
|
@ -354,6 +361,7 @@ def remove_value(value):
|
||||||
values = self.tdb.Select(
|
values = self.tdb.Select(
|
||||||
tabname, None,
|
tabname, None,
|
||||||
conditions={'Type': dbtables.ExactCond('Unknown')})
|
conditions={'Type': dbtables.ExactCond('Unknown')})
|
||||||
|
values = list(values)
|
||||||
assert len(values) == 1, values
|
assert len(values) == 1, values
|
||||||
assert values[0]['Name'] == None, values
|
assert values[0]['Name'] == None, values
|
||||||
assert values[0]['Access'] == None, values
|
assert values[0]['Access'] == None, values
|
||||||
|
@ -362,6 +370,7 @@ def remove_value(value):
|
||||||
values = self.tdb.Select(
|
values = self.tdb.Select(
|
||||||
tabname, None,
|
tabname, None,
|
||||||
conditions={'Name': dbtables.ExactCond('Nifty.MP3')})
|
conditions={'Name': dbtables.ExactCond('Nifty.MP3')})
|
||||||
|
values = list(values)
|
||||||
assert len(values) == 1, values
|
assert len(values) == 1, values
|
||||||
assert values[0]['Type'] == "MP3", values
|
assert values[0]['Type'] == "MP3", values
|
||||||
assert values[0]['Access'] == "2", values
|
assert values[0]['Access'] == "2", values
|
||||||
|
@ -369,6 +378,7 @@ def remove_value(value):
|
||||||
# Make sure change applied only to select conditions
|
# Make sure change applied only to select conditions
|
||||||
values = self.tdb.Select(
|
values = self.tdb.Select(
|
||||||
tabname, None, conditions={'Name': dbtables.LikeCond('%doc%')})
|
tabname, None, conditions={'Name': dbtables.LikeCond('%doc%')})
|
||||||
|
values = list(values)
|
||||||
assert len(values) == 1, values
|
assert len(values) == 1, values
|
||||||
assert values[0]['Type'] == "Word", values
|
assert values[0]['Type'] == "Word", values
|
||||||
assert values[0]['Access'] == "9", values
|
assert values[0]['Access'] == "9", values
|
||||||
|
|
Loading…
Reference in New Issue