diff --git a/combo/apps/newsletters/models.py b/combo/apps/newsletters/models.py index 4de04cad..7831a1bb 100644 --- a/combo/apps/newsletters/models.py +++ b/combo/apps/newsletters/models.py @@ -103,17 +103,15 @@ class NewslettersCell(CellBase): def check_transport(self, transport): restrictions = self.get_transports_restrictions() - if restrictions and transport in restrictions: - return True - return False + if restrictions and transport not in restrictions: + return False + return True def filter_data(self, data): filtered = [] for item in data: if not self.check_resource(item['text']): continue - if not self.transports_restrictions: - filtered.append(item) for t in item['transports']: if self.check_transport(t['id']): filtered.append(item) diff --git a/tests/test_newsletters_cell.py b/tests/test_newsletters_cell.py index d5e74bc7..d1ae9cb8 100644 --- a/tests/test_newsletters_cell.py +++ b/tests/test_newsletters_cell.py @@ -91,10 +91,23 @@ def test_get_newsletters_by_transports(mock_get, cell): mock_get.return_value = mock_json assert cell.get_newsletters() == expected_newsletters +@mock.patch('combo.apps.newsletters.models.requests.get') +def test_get_newsletters_by_unrestricted_transports(mock_get, cell): + cell.transports_restrictions = '' + expected_newsletters = [] + for n in NEWSLETTERS: + for t in n['transports']: + expected_newsletters.append(n) + mock_json = mock.Mock() + mock_json.json.return_value = {'err': 0, + 'data': NEWSLETTERS} + mock_get.return_value = mock_json + assert cell.get_newsletters() == expected_newsletters @mock.patch('combo.apps.newsletters.models.requests.get') def test_get_newsletters_by_resources(mock_get, cell): restrictions = ('marches-publics', 'familles', 'democratie-locale') + cell.transports_restrictions = 'mail' cell.resources_restrictions = ','.join(restrictions) expected_newsletters = [] for n in NEWSLETTERS: