[IMP] base_partition: add read_per_record method
parent
c252a4e4f4
commit
0b0103f382
|
@ -67,6 +67,14 @@ class Base(models.AbstractModel):
|
||||||
for i in range(0, len(self), batch_size):
|
for i in range(0, len(self), batch_size):
|
||||||
yield self[i : i + batch_size]
|
yield self[i : i + batch_size]
|
||||||
|
|
||||||
|
def read_per_record(self, fields=None, load="_classic_read"):
|
||||||
|
result = {}
|
||||||
|
data_list = self.read(fields=fields, load=load)
|
||||||
|
for d in data_list:
|
||||||
|
key = d.pop("id")
|
||||||
|
result[key] = d
|
||||||
|
return result
|
||||||
|
|
||||||
def filtered_domain(self, domain):
|
def filtered_domain(self, domain):
|
||||||
"""Backport from standard.
|
"""Backport from standard.
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -116,6 +116,16 @@ class TestPartition(TransactionCase):
|
||||||
batches_from_default = list(records.batch())
|
batches_from_default = list(records.batch())
|
||||||
self.assertEqual(batches_from_default, batches)
|
self.assertEqual(batches_from_default, batches)
|
||||||
|
|
||||||
|
def test_read_per_record(self):
|
||||||
|
categories = self.c1 | self.c2 | self.c3
|
||||||
|
field_list = ["name"]
|
||||||
|
data = categories.read_per_record(field_list)
|
||||||
|
self.assertEqual(len(data), len(categories))
|
||||||
|
for record in categories:
|
||||||
|
self.assertTrue(record.id in data)
|
||||||
|
record_data = data[record.id]
|
||||||
|
self.assertEqual(list(record_data.keys()), field_list)
|
||||||
|
|
||||||
def test_filtered_domain(self):
|
def test_filtered_domain(self):
|
||||||
"""Initially yo satisfy the coverage tools, this test actually documents
|
"""Initially yo satisfy the coverage tools, this test actually documents
|
||||||
a number of pitfalls of filtered_domain and the differences with a search.
|
a number of pitfalls of filtered_domain and the differences with a search.
|
||||||
|
|
Loading…
Reference in New Issue