def test_unregister(self): chid = str(uuid.uuid4()) m = get_rotating_message_tablename(boto_resource=self.resource) message = Message(m, boto_resource=self.resource) message.register_channel(self.uaid, chid) # Verify its in the db lm = self.resource.Table(m) # Verify it's in the db response = lm.query( KeyConditions={ 'uaid': { 'AttributeValueList': [self.uaid], 'ComparisonOperator': 'EQ' }, 'chidmessageid': { 'AttributeValueList': [" "], 'ComparisonOperator': 'EQ' }, }, ConsistentRead=True, ) results = list(response.get('Items')) assert len(results) == 1 assert results[0]["chids"] == {chid} message.unregister_channel(self.uaid, chid) # Verify its not in the db response = lm.query( KeyConditions={ 'uaid': { 'AttributeValueList': [self.uaid], 'ComparisonOperator': 'EQ' }, 'chidmessageid': { 'AttributeValueList': [" "], 'ComparisonOperator': 'EQ' }, }, ConsistentRead=True, ) results = list(response.get('Items')) assert len(results) == 1 assert results[0].get("chids") is None # Test for the very unlikely case that there's no 'chid' mtable = Mock() mtable.update_item = Mock(return_value={ 'Attributes': { 'uaid': self.uaid }, 'ResponseMetaData': {} }) message.table = mtable r = message.unregister_channel(self.uaid, dummy_chid) assert r is False
def test_message_delete_fail_condition(self): m = get_rotating_message_table() message = Message(m, SinkMetrics()) def raise_condition(*args, **kwargs): raise ConditionalCheckFailedException(None, None) message.table = Mock() message.table.delete_item.side_effect = raise_condition result = message.delete_message(uaid="asdf", channel_id="asdf", message_id="asdf", updateid="asdf") eq_(result, False)
def test_message_delete_fail_condition(self): notif = make_webpush_notification(dummy_uaid, dummy_chid) notif.message_id = notif.update_id = dummy_uaid m = get_rotating_message_table() message = Message(m, SinkMetrics()) def raise_condition(*args, **kwargs): raise ConditionalCheckFailedException(None, None) message.table = Mock() message.table.delete_item.side_effect = raise_condition result = message.delete_message(notif) eq_(result, False)
def test_message_delete_fail_condition(self): notif = make_webpush_notification(dummy_uaid, dummy_chid) notif.message_id = notif.update_id = dummy_uaid m = get_rotating_message_table() message = Message(m, SinkMetrics()) def raise_condition(*args, **kwargs): raise ClientError({}, 'delete_item') message.table = Mock() message.table.delete_item.side_effect = raise_condition result = message.delete_message(notif) assert result is False
def test_message_delete_fail_condition(self): notif = make_webpush_notification(dummy_uaid, dummy_chid) notif.message_id = notif.update_id = dummy_uaid m = get_rotating_message_tablename(boto_resource=self.resource) message = Message(m, boto_resource=self.resource) def raise_condition(*args, **kwargs): raise ClientError({}, 'delete_item') m_de = Mock() m_de.delete_item = Mock(side_effect=raise_condition) message.table = m_de result = message.delete_message(notif) assert result is False
def test_all_channels_fail(self): m = get_rotating_message_tablename(boto_resource=self.resource) message = Message(m, boto_resource=self.resource) mtable = Mock() mtable.get_item.return_value = { "ResponseMetadata": { "HTTPStatusCode": 400 }, } message.table = mtable res = message.all_channels(self.uaid) assert res == (False, set([]))
def test_message_delete_fail_condition(self): m = get_rotating_message_table() message = Message(m, SinkMetrics()) def raise_condition(*args, **kwargs): raise ConditionalCheckFailedException(None, None) message.table = Mock() message.table.delete_item.side_effect = raise_condition result = message.delete_message(uaid=dummy_uaid, channel_id=dummy_chid, message_id="asdf", updateid="asdf") eq_(result, False)