def test_reputation_events_for_source_b64(self):
        with patch('db.mongo.Mongo') as mock:
            instance = mock.return_value
            enter = instance.__enter__.return_value
            enter.find_all_event_data_for_ip.return_value = [
                {
                    'weight': 3,
                    'timestamp': 4,
                    'filename': 'ZZZ',
                    'source': 'SpamCop',
                    'data': 'AAA'
                },  # NOP SOURCE
                {
                    'weight': 7,
                    'timestamp': 5,
                    'filename': 'XXX',
                    'source': 'AOL',
                    'data': 'SGVsbG8gd29ybGQ='
                }
            ]

            result = reputation.get_reputation_events_for_source(
                '5.5.5.5', 'AOL', 3)

            enter.find_all_event_data_for_ip.assert_called_with(
                '5.5.5.5', 3, True)

            self.assertEqual(1, len(result))
            self.assertEqual("Hello world", result[0]['data'])
예제 #2
0
def get_reputation_details_for_source(addr, source):
    """
        Retrieve details about events for a given source and a given ip.
        Those details consist in an array of events and for each event,
        the raw data that created this event. A timestamp can be passed
        using `start_date` parameter.
    """
    try:
        start_date = _get_start_date()
    except:
        return {"error": "Expected start_date to be an integer."}, 400

    return reputation_service.get_reputation_events_for_source(addr, source, start_date), 200
def get_reputation_details_for_source(addr, source):
    """
        Retrieve details about events for a given source and a given ip.
        Those details consist in an array of events and for each event,
        the raw data that created this event. A timestamp can be passed
        using `start_date` parameter.
    """
    try:
        start_date = _get_start_date()
    except:
        return {"error": "Expected start_date to be an integer."}, 400

    return reputation_service.get_reputation_events_for_source(
        addr, source, start_date), 200
    def test_reputation_events_for_source_b64(self):
        with patch('mongo.mongo.Mongo') as mock:
            instance = mock.return_value
            enter = instance.__enter__.return_value
            enter.find_all_event_data_for_ip.return_value = [
                {'weight': 3, 'timestamp': 4, 'filename': 'ZZZ', 'source': 'SpamCop', 'data': 'AAA'},  # NOP SOURCE
                {'weight': 7, 'timestamp': 5, 'filename': 'XXX', 'source': 'AOL', 'data': 'SGVsbG8gd29ybGQ='}
            ]

            result = reputation.get_reputation_events_for_source('5.5.5.5', 'AOL', 3)

            enter.find_all_event_data_for_ip.assert_called_with('5.5.5.5', 3, True)

            self.assertEquals(1, len(result))
            self.assertEqual("Hello world", result[0]['data'])
    def test_reputation_events_for_source(self):
        with patch('mongo.mongo.Mongo') as mock:
            instance = mock.return_value
            enter = instance.__enter__.return_value
            enter.find_all_event_data_for_ip.return_value = [
                {'weight': 3, 'timestamp': 4, 'filename': 'ZZZ', 'source': 'SpamCop', 'data': 'AAA'},
                {'weight': 5, 'timestamp': 5, 'filename': 'YYY', 'source': 'SpamCop', 'data': 'BBB'},
                {'weight': 7, 'timestamp': 6, 'filename': 'XXX', 'source': 'AOL', 'data': 'CCC'}       # NOP SOURCE
            ]

            result = reputation.get_reputation_events_for_source('5.5.5.5', shortened_names['SpamCop'], 3)

            enter.find_all_event_data_for_ip.assert_called_with('5.5.5.5', 3, True)

            self.assertEquals(2, len(result))
            self.assertEqual(['YYY', 'ZZZ'], sorted([r['filename'] for r in result]))