Example #1
0
 def test_send_messages_without_resource(self, changelog_meta):
     client = self.make_one(None)
     client._is_running = True
     metadata = [changelog_meta._replace(resource=None, created=True)]
     client.send_messages(metadata)
     assert self._dummy_connection.nothing_sent is True
     assert len(self._dummy_connection.queue) == 0
Example #2
0
 def test_queue_and_send_messages(self, websocket_client, changelog_meta):
     from pyramid.testing import DummyResource
     context = DummyResource()
     child = DummyResource()
     context['child'] = child
     metadata = [changelog_meta._replace(resource=child)]
     websocket_client._send_messages(metadata)
     assert websocket_client.changelog_metadata_messages_to_send == set()
Example #3
0
 def test_send_messages_nonempty_queue(self, changelog_meta):
     client = self.make_one(None)
     client._is_running = True
     metadata = [changelog_meta._replace(created=True)]
     client.send_messages(metadata)
     assert self._dummy_connection.nothing_sent is False
     assert len(self._dummy_connection.queue) == 1
     assert 'created' in self._dummy_connection.queue[0]
Example #4
0
 def test_send_modified_messages_for_backrefs(self, changelog_meta):
     """A modified event is sent for a backreferenced resource."""
     client = self.make_one(None)
     client._is_running = True
     metadata = [changelog_meta._replace(changed_backrefs=True)]
     client.send_messages(metadata)
     assert self._dummy_connection.nothing_sent is False
     assert len(self._dummy_connection.queue) == 1
     assert 'modified' in self._dummy_connection.queue[0]
Example #5
0
 def test_send_messages_resource_is_blocked(self, changelog_meta):
     """If a resource is blocked, no event should be sent."""
     client = self.make_one(None)
     client._is_running = True
     resource = DummyResource()
     resource.hidden = True
     metadata = [changelog_meta._replace(modified=True, resource=resource)]
     client.send_messages(metadata)
     assert self._dummy_connection.nothing_sent is True
     assert len(self._dummy_connection.queue) == 0
Example #6
0
    def test_send_messages_invisible(self, changelog_meta):
        """No event is sent for invisible resources."""
        from adhocracy_core.interfaces import VisibilityChange

        client = self.make_one(None)
        client._is_running = True
        metadata = [changelog_meta._replace(modified=True, visibility=VisibilityChange.invisible)]
        client.send_messages(metadata)
        assert self._dummy_connection.nothing_sent is True
        assert len(self._dummy_connection.queue) == 0
Example #7
0
 def test_send_modified_messages_for_backrefs_no_duplicates(self, changelog_meta):
     """No additional event is sent if a backreferenced resource
     is created anyway.
     """
     client = self.make_one(None)
     client._is_running = True
     metadata = [changelog_meta._replace(created=True, changed_backrefs=True)]
     client.send_messages(metadata)
     assert self._dummy_connection.nothing_sent is False
     assert len(self._dummy_connection.queue) == 1
     assert "created" in self._dummy_connection.queue[0]
Example #8
0
 def test_send_messages_created_and_modified(self, changelog_meta):
     """If a resource has been created and then modified, only a
     'created' event should be sent.
     """
     client = self.make_one(None)
     client._is_running = True
     metadata = [changelog_meta._replace(created=True, modified=True)]
     client.send_messages(metadata)
     assert self._dummy_connection.nothing_sent is False
     assert len(self._dummy_connection.queue) == 1
     assert "created" in self._dummy_connection.queue[0]
Example #9
0
 def test_send_messages_concealed(self, changelog_meta):
     """If a resource has been concealed, a 'removed' event should be sent.
     """
     from adhocracy_core.interfaces import VisibilityChange
     client = self.make_one(None)
     client._is_running = True
     metadata = [changelog_meta._replace(
         visibility=VisibilityChange.concealed)]
     client.send_messages(metadata)
     assert self._dummy_connection.nothing_sent is False
     assert len(self._dummy_connection.queue) == 1
     assert 'removed' in self._dummy_connection.queue[0]
Example #10
0
 def test_send_messages_changed_descendants_and_modified(self, changelog_meta):
     """If a resource has changed_descendants amd is modified, both
      events should be sent.
     """
     client = self.make_one(None)
     client._is_running = True
     metadata = [changelog_meta._replace(changed_descendants=True, modified=True)]
     client.send_messages(metadata)
     assert self._dummy_connection.nothing_sent is False
     assert len(self._dummy_connection.queue) == 2
     assert "modified" in self._dummy_connection.queue[0]
     assert "changed_descendants" in self._dummy_connection.queue[1]
Example #11
0
 def changelog_meta(self, changelog_meta, pool_graph):
     child = self._make_resource(parent=pool_graph)
     return changelog_meta._replace(resource=child)
Example #12
0
 def test_send_messages_if_not_running(self, changelog_meta):
     client = self.make_one(None)
     client._is_running = False
     metadata = [changelog_meta._replace(created=True)]
     client.send_messages(metadata)
     assert self._dummy_connection.nothing_sent is True