Projet

Général

Profil

0002-data-deprecate-get_last_update_time-using-signals-39.patch

Nicolas Roche, 27 janvier 2020 17:55

Télécharger (3,65 ko)

Voir les différences:

Subject: [PATCH 2/4] data: deprecate get_last_update_time using signals
 (#39091)

 combo/data/models.py |  5 ++---
 tests/test_pages.py  | 30 +++++++++++++-----------------
 2 files changed, 15 insertions(+), 20 deletions(-)
combo/data/models.py
352 352
            cell_types.add(cell.get_cell_type_str())
353 353
        if cell_types != set(self.related_cells.get('cell_types', [])):
354 354
            self.related_cells['cell_types'] = list(cell_types)
355
            self.save()
355
        self.save()
356 356

  
357 357
    def get_serialized_page(self):
358 358
        cells = [x for x in self.get_cells() if x.placeholder and not x.placeholder.startswith('_')]
......
432 432
        return utils.get_templated_url(self.redirect_url, context=context)
433 433

  
434 434
    def get_last_update_time(self):
435
        cells = CellBase.get_cells(page_id=self.id)
436
        return max([self.last_update_timestamp] + [x.last_update_timestamp for x in cells])
435
        return self.last_update_timestamp
437 436

  
438 437
    def is_new(self):
439 438
        return self.creation_timestamp > timezone.now() - datetime.timedelta(days=7)
tests/test_pages.py
1
import datetime
2 1
import os
3 2
import pytest
4 3
import sys
......
8 7
from django.test import override_settings
9 8
from django.test.client import RequestFactory
10 9
from django.utils.six import StringIO
11
from django.utils.timezone import now
12 10
from combo.data.models import Page, PageSnapshot, CellBase, TextCell, LinkCell, LinkListCell
13 11
from combo.data.management.commands.import_site import Command as ImportSiteCommand
14 12
from combo.data.management.commands.export_site import Command as ExportSiteCommand
......
355 353
    assert isinstance(CellBase.get_cells(page_id=new_page_1.id)[0], TextCell)
356 354
    assert CellBase.get_cells(page_id=new_page_1.id)[0].text == 'foo'
357 355

  
358
def test_last_update_time():
359
    page = Page(title=u'foo', slug='foo', order=0)
360
    page.save()
361

  
362
    cell = TextCell(page=page, text='foo', order=0)
363
    cell.save()
364

  
365
    cell = TextCell(page=page, text='bar', order=0)
366
    cell.save()
367

  
368
    future_time = now() + datetime.timedelta(days=2)
369
    TextCell.objects.filter(pk=cell.id).update(last_update_timestamp=future_time)
370

  
371
    assert page.get_last_update_time() == future_time
372

  
373 356
def test_get_placeholders():
374 357
    page = Page(title=u'foo', slug='foo', template_name='standard-sidebar', order=0)
375 358
    request = RequestFactory().get('/')
......
410 393
    response = app.get(page.get_online_url())
411 394
    assert "{{e-service_url}}backoffice/..." in response.text  # href not rendered
412 395

  
396
def test_cell_maintain_page_cell_cache(freezer):
397
    freezer.move_to('2020-01-01')
398
    page = Page(title='page-1', slug='page-1')
399
    page.save()
400
    cell = TextCell(page=page, order=0, slug='cell-1', text='foo')
401
    cell.save()
402
    assert page.last_update_timestamp.isoformat().startswith('2020-01-01')
403

  
404
    freezer.move_to('2020-02-02')
405
    cell.text = 'bar'
406
    cell.save()
407
    assert page.last_update_timestamp.isoformat().startswith('2020-02-02')
408

  
413 409
def test_page_is_new(freezer):
414 410
    freezer.move_to('2020-01-01')
415 411
    page = Page(title='page-1', slug='page-1')
416
-