Exemplo n.º 1
0
 def test_no_varnish_url(self, monkeypatch, registry_with_changelog,
                         changelog_meta, context, request_):
     """Nothing should happen if no varnish_url is configured."""
     from adhocracy_core.caching import purge_varnish_after_commit_hook
     mock_requests = self._monkeypatch_requests(monkeypatch)
     registry_with_changelog.changelog[
         '/'] = changelog_meta._replace(resource=context, modified=True)
     purge_varnish_after_commit_hook(True, registry_with_changelog, request_)
     assert not mock_requests.request.called
Exemplo n.º 2
0
 def test_success_false(self, monkeypatch, registry_for_varnish,
                        changelog_meta, context, request_):
     """Nothing should happen if the transaction was unsuccessful."""
     from adhocracy_core.caching import purge_varnish_after_commit_hook
     mock_requests = self._monkeypatch_requests(monkeypatch)
     registry_for_varnish.changelog[
         '/'] = changelog_meta._replace(resource=context, modified=True)
     purge_varnish_after_commit_hook(False, registry_for_varnish, request_)
     assert not mock_requests.request.called
Exemplo n.º 3
0
 def test_non_empty_changelog_but_unchanged_resource(
         self, monkeypatch, registry_for_varnish, changelog_meta, context,
         request_):
     from adhocracy_core.caching import purge_varnish_after_commit_hook
     mock_requests = self._monkeypatch_requests(monkeypatch)
     registry_for_varnish.changelog[
         '/'] = changelog_meta._replace(resource=context)
     purge_varnish_after_commit_hook(True, registry_for_varnish, request_)
     assert not mock_requests.request.called
Exemplo n.º 4
0
 def test_change_descendants_in_changelog(
         self, monkeypatch, registry_for_varnish, changelog_meta, context,
         request_):
     from adhocracy_core.caching import purge_varnish_after_commit_hook
     mock_requests = self._monkeypatch_requests(monkeypatch)
     registry_for_varnish.changelog[
         '/'] = changelog_meta._replace(resource=context,
                                        changed_descendants=True)
     purge_varnish_after_commit_hook(True, registry_for_varnish, request_)
     assert mock_requests.request.call_args[1]['headers']['X-Purge-Regex']\
         == '/?\??.*$'
Exemplo n.º 5
0
 def test_modified_in_changelog(self, monkeypatch, registry_for_varnish,
                                changelog_meta, context, request_):
     from adhocracy_core.caching import purge_varnish_after_commit_hook
     request_.host = 'host'
     mock_requests = self._monkeypatch_requests(monkeypatch)
     registry_for_varnish.changelog[
         '/'] = changelog_meta._replace(resource=context, modified=True)
     purge_varnish_after_commit_hook(True, registry_for_varnish, request_)
     mock_requests.request.assert_called_once_with(
         'PURGE', 'http://localhost/', headers={'X-Purge-Host': 'host',
                                                'X-Purge-Regex': '/?\??.*$'})
Exemplo n.º 6
0
 def test_unexpected_status_code(self, monkeypatch, registry_for_varnish,
                              changelog_meta, context, request_):
     from adhocracy_core import caching
     from adhocracy_core.caching import purge_varnish_after_commit_hook
     mock_requests = self._monkeypatch_requests(monkeypatch,
                                                status_code=444)
     mock_logger = mock.Mock()
     monkeypatch.setattr(caching, 'logger', mock_logger)
     registry_for_varnish.changelog[
         '/'] = changelog_meta._replace(resource=context, modified=True)
     purge_varnish_after_commit_hook(True, registry_for_varnish, request_)
     assert mock_requests.request.called
     assert mock_logger.warning.called
Exemplo n.º 7
0
 def test_exception_raised(self, monkeypatch, registry_for_varnish,
                           changelog_meta, context, request_):
     from requests.exceptions import RequestException
     from adhocracy_core import caching
     from adhocracy_core.caching import purge_varnish_after_commit_hook
     mock_requests = self._monkeypatch_requests(
         monkeypatch, side_effect=RequestException('Nope!'))
     mock_logger = mock.Mock()
     monkeypatch.setattr(caching, 'logger', mock_logger)
     registry_for_varnish.changelog[
         '/'] = changelog_meta._replace(resource=context, modified=True)
     purge_varnish_after_commit_hook(True, registry_for_varnish, request_)
     assert mock_requests.request.called
     assert mock_logger.error.called
Exemplo n.º 8
0
 def test_empty_changelog(self, monkeypatch, registry_for_varnish, request_):
     from adhocracy_core.caching import purge_varnish_after_commit_hook
     mock_requests = self._monkeypatch_requests(monkeypatch)
     purge_varnish_after_commit_hook(True, registry_for_varnish, request_)
     assert not mock_requests.request.called