Projet

Général

Profil

0002-cells-a-cell-is-not-visible-after-2-days-of-invalidi.patch

Lauréline Guérin, 02 mars 2020 16:08

Télécharger (2,6 ko)

Voir les différences:

Subject: [PATCH 2/6] cells: a cell is not visible after 2 days of invalidity
 (#38009)

 combo/data/models.py |  3 +++
 tests/test_cells.py  | 22 +++++++++++++++++++++-
 2 files changed, 24 insertions(+), 1 deletion(-)
combo/data/models.py
738 738
        return {}
739 739

  
740 740
    def is_visible(self, user=None):
741
        validity_info = self.validity_info.all().first()
742
        if validity_info is not None and validity_info.invalid_since and validity_info.invalid_since < now() - datetime.timedelta(days=2):
743
            return False
741 744
        return element_is_visible(self, user=user)
742 745

  
743 746
    def is_relevant(self, context):
tests/test_cells.py
1
import datetime
1 2
import json
2 3
import mock
3 4
import os
......
6 7

  
7 8
from combo.data.models import (
8 9
    Page, CellBase, TextCell, LinkCell, MenuCell, JsonCellBase,
9
    JsonCell, ConfigJsonCell, LinkListCell
10
    JsonCell, ConfigJsonCell, LinkListCell, ValidityInfo
10 11
)
11 12
from django.conf import settings
12 13
from django.db import connection
......
18 19
from django.contrib.auth.models import User
19 20
from django.core.urlresolvers import reverse
20 21
from django.utils.encoding import force_text, force_bytes
22
from django.utils.timezone import now
21 23

  
22 24
from combo.data.library import get_cell_classes
23 25
from combo.utils import NothingInCacheException
......
787 789
    assert new_item.title == item.title
788 790
    assert new_item.url == item.url
789 791
    assert new_item.link_page == item.link_page
792

  
793

  
794
def test_cell_is_visible():
795
    page = Page.objects.create()
796
    cell = TextCell.objects.create(page=page, order=0)
797
    assert cell.is_visible() is True
798

  
799
    # invalid cell since just now
800
    validity_info = ValidityInfo.objects.create(content_object=cell)
801
    validity_info.invalid_reason_code = 'FOO'
802
    validity_info.invalid_since = now()
803
    validity_info.save()
804
    assert cell.is_visible() is True
805

  
806
    # invalid cell since two days
807
    validity_info.invalid_since = now() - datetime.timedelta(days=2)
808
    validity_info.save()
809
    assert cell.is_visible() is False
790
-