diff options
| author | Francois Volral <fvo@odoo.com> | 2018-08-10 18:11:37 +0200 |
|---|---|---|
| committer | Francois Volral <fvo@odoo.com> | 2018-08-10 18:15:27 +0200 |
| commit | 6caf5ed7d2f706db0cfca0541f199df468aadae6 (patch) | |
| tree | 600b241b95087786d251ba74ce81daab00793a65 | |
| parent | 4b3766e8eb05fe4a9f1f083da6f4facf56b4f688 (diff) | |
[FIX] orm: Adapt test and read_group_fill_temporal
In the commit 4a40db2. the implementation of read_group_fill_temporal was
simplified during final review and tests needed to be adapted.
Also fix the implementation issues as detected by the tests.
| -rw-r--r-- | odoo/addons/base/tests/test_misc.py | 8 | ||||
| -rw-r--r-- | odoo/models.py | 10 |
2 files changed, 7 insertions, 11 deletions
diff --git a/odoo/addons/base/tests/test_misc.py b/odoo/addons/base/tests/test_misc.py index 881474f7d08..08c790387e9 100644 --- a/odoo/addons/base/tests/test_misc.py +++ b/odoo/addons/base/tests/test_misc.py @@ -162,14 +162,6 @@ class TestDateRangeFunction(unittest.TestCase): self.assertEqual(dates, expected) - def test_date_range_with_identical_boundaries(self): - """ date_range with indentical boundaries. """ - start = datetime.datetime(1985, 1, 1) - end = datetime.datetime(1985, 1, 1) - - with self.assertRaises(ValueError): - dates = [date for date in date_utils.date_range(start, end)] - class TestFormatLangDate(TransactionCase): def test_00_accepted_types(self): diff --git a/odoo/models.py b/odoo/models.py index 9c12cc0f5b1..ef31d3b2d82 100644 --- a/odoo/models.py +++ b/odoo/models.py @@ -1811,7 +1811,7 @@ class BaseModel(MetaModel('DummyModel', (object,), {'_register': False})): # assumption: existing data is sorted by field 'groupby_name' first, last = existing[0], existing[-1] - expected = list(date_utils.date_range(first, last, interval)) + expected = collections.deque(date_utils.date_range(first, last, interval)) if len(existing) < len(expected): empty_data = dict.fromkeys(aggregated_fields, False) @@ -1827,8 +1827,12 @@ class BaseModel(MetaModel('DummyModel', (object,), {'_register': False})): # is sorted like data, so what we do is empty data progressivly by # popping its elements from first to last. To do this properly, we # need to compare dates together. - for dt in expected: - if not data[0][groupby_name] or data[0][groupby_name] == dt: + while expected or data: + if not data[0][groupby_name]: + new_data.append(data.popleft()) + continue + dt = expected.popleft() + if data[0][groupby_name] == dt: new_data.append(data.popleft()) else: new_data.append(dict(empty_data, **{groupby_name: dt})) |
