def test__get_client_and_urls_matched__url_pattern_empty(self): test_criteria_local = [ {'org_id': 'org4', 'asn_seq': [], 'fqdn_seq': [''], 'url_seq': ['wp.pl', u'wpą.pl'], }] body = self.prepare_mock(test_criteria_local) # test empty url_pattern unicode body[u'url_pattern'] = u'' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), ([], {})) # test empty url_pattern string body[u'url_pattern'] = '' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), ([], {})) # # test empty url_pattern = None body[u'url_pattern'] = None json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), ([], {}))
def test__get_client_and_urls_matched__many_url_seq(self): test_criteria_local = [ {'org_id': 'org4', 'asn_seq': [], 'fqdn_seq': [''], 'url_seq': [u'wąska.pl', 'example.com', 'http://aaa.pl/auth.php'], }] body = self.prepare_mock(test_criteria_local) # test glob mach body[u'url_pattern'] = u'*.*' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), (['org4'], {'org4': ['example.com', 'http://aaa.pl/auth.php', u'wąska.pl']})) # test regexp mach body[u'url_pattern'] = u'.*aaa\\.pl\\/auth.*' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), (['org4'], {'org4': ['http://aaa.pl/auth.php']})) # test regexp mach body[u'url_pattern'] = u'.*example.*' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), (['org4'], {'org4': ['example.com']})) # test regexp mach body[u'url_pattern'] = u'wą[a-z][xkl]a\\..*' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), (['org4'], {'org4': [u'wąska.pl']}))
def test__get_client_and_urls_matched__2(self): body = {"category": "bots", "restriction": "public", "confidence": "medium", "sha1": "023a00e7c2ef04ee5b0f767ba73ee39734323432", "name": "virut", "proto": "tcp", "address": [{"cc": "XX", "ip": "1.1.1.1", "asn": "1"}, {"cc": "XX", "ip": "100.71.83.178", "asn": "1"}, {"cc": "XX", "ip": "102.71.83.178", "asn": "1"}], "fqdn": "domain.com", "url": "http://onet.pl", "source": "hpfeeds.dionaea", "time": "2013-07-01 20:37:20", "dport": "445", "rid": "023a00e7c2ef04ee5b0f767ba73ee397", "sport": "2147", "dip": "10.28.71.43", "id": "023a00e7c2ef04ee5b0f767ba73ee397"} # tested key:[test_value,[valid value]] input_data = {'ip': ['154.89.207.81', ['fdc']], 'cc': ['SU', ['decfba', 'fdc']], 'asn': ['45975', ['fdc']], 'fqdn': ['onetbrutalmikmokcert.eu', ['fdc']]} self.auth_api_mock._get_inside_criteria.return_value = TEST_CRITERIA for i in input_data: body = self.reset_body(body) if i == 'fqdn': body['fqdn'] = input_data[i][0] else: body['address'][0][i] = input_data[i][0] json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertItemsEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), (input_data[i][1], {}))
def input_callback(self, routing_key, body, properties): data = RecordDict.from_json(body) with self.setting_error_event_info(data): enriched = self.enrich(data) rk = replace_segment(routing_key, 1, 'enriched') body = enriched.get_ready_json() self.publish_output(routing_key=rk, body=body)
def input_callback(self, routing_key, body, properties): record_dict = RecordDict.from_json(body) with self.setting_error_event_info(record_dict): data = dict(record_dict) ## FIXME?: maybe it could be just the record_dict? if '_group' not in data: raise n6QueueProcessingException("Hi-frequency source missing '_group' field.") self.process_event(data)
def test__get_client_and_urls_matched__1(self): body = {"category": "bots", "restriction": "public", "confidence": "medium", "sha1": "023a00e7c2ef04ee5b0f767ba73ee39734323432", "name": "virut", "proto": "tcp", "address": [{"cc": "XX", "ip": "139.33.220.192", "asn": "1"}, {"cc": "XX", "ip": "100.71.83.178", "asn": "1"}, {"cc": "XX", "ip": "102.71.83.178", "asn": "1"}], "fqdn": "domain.com", "url": "http://onet.pl", "source": "hpfeeds.dionaea", "time": "2013-07-01 20:37:20", "dport": "445", "rid": "023a00e7c2ef04ee5b0f767ba73ee397", "sport": "2147", "dip": "10.28.71.43", "id": "023a00e7c2ef04ee5b0f767ba73ee397"} # tested key:[test_value,[valid value]] input_data = {'ip': ['139.33.220.192', ['afbc']], 'cc': ['AL', ['afbc', 'eabf']], 'asn': ['43756', ['afbc']], 'fqdn': ['mycertbridgeonetalamakotawpmikmoknask.org', ['afbc']]} self.per_test_inside_criteria = TEST_CRITERIA for i in input_data: body = self.reset_body(body) if i == 'fqdn': body['fqdn'] = input_data[i][0] else: body['address'][0][i] = input_data[i][0] json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), (input_data[i][1], {}))
def input_callback(self, routing_key, body, properties): record_dict = RecordDict.from_json(body) with self.setting_error_event_info(record_dict): client, urls_matched = self.get_client_and_urls_matched( record_dict, self.fqdn_only_categories) record_dict['client'] = client if urls_matched: record_dict['urls_matched'] = urls_matched self.publish_event(record_dict, routing_key)
def test__get_client_and_urls_matched__fqdn_seq(self): test_criteria_local = [ {'org_id': 'cli16bit', 'cc_seq': ['PL'], 'asn_seq': [21467], 'fqdn_seq': [u'ala.eu', u'xxx.org', u'aaa.aa'], 'ip_min_max_seq': TEST_CRITERIA[-1]['ip_min_max_seq'], }] body = self.prepare_mock(test_criteria_local) body['fqdn'] = 'ala.eu' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), (['cli16bit'], {})) body['fqdn'] = 'xxx.org' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), (['cli16bit'], {})) body['fqdn'] = 'aaa.aa' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), (['cli16bit'], {})) body['fqdn'] = u'aaa.aa' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), (['cli16bit'], {})) # test outside the network body['fqdn'] = 'xxx.eu' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), ([], {}))
def test__get_client_and_urls_matched__with_idna_fqdn(self): self.auth_api_mock._get_inside_criteria.return_value = [ {'org_id': 'org1000', 'fqdn_seq': [u'xn--krlgr-1tac.pl'], # `królgór.pl`, IDNA-encoded + coerced to unicode }] body = {"category": "bots", "restriction": "public", "confidence": "medium", "name": "virut", "address": [{"cc": "XX", "ip": "1.1.1.1"}], "source": "hpfeeds.dionaea", "time": "2013-07-01 20:37:20", "fqdn": u'test.królgór.pl'} json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), (['org1000'], {}))
def test__get_client_and_urls_matched__with_unicode_url_pattern(self): self.auth_api_mock._get_inside_criteria.return_value = [ {'org_id': 'org11', 'url_seq': [u'władcażlebów.pl'], }] body = {"category": "bots", "restriction": "public", "confidence": "medium", "name": "virut", "address": [{"cc": "XX", "ip": "1.1.1.1"}], "source": "hpfeeds.dionaea", "time": "2013-07-01 20:37:20", u'url_pattern': u'*ów.*'} json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), (['org11'], {'org11': [u'władcażlebów.pl']}))
def test__get_client_and_urls_matched__url_seq_empty(self): test_criteria_local = [ {'org_id': 'org4', 'asn_seq': [], 'fqdn_seq': [''], 'url_seq': [''], }] body = self.prepare_mock(test_criteria_local) # test glob mach body[u'url_pattern'] = u'*.*' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), ([], {}))
def test__get_client_and_urls_matched__no_fqdn_seq(self): test_criteria_local = [ {'org_id': 'org4', 'asn_seq': [21467], 'fqdn_seq': [''], }] body = self.prepare_mock(test_criteria_local) # test outside network body['address'][0]['cc'] = 'GU' body['address'][0]['asn'] = 21467 json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), (['org4'], {}))
def test__get_client_and_urls_matched__empty_cc(self): test_criteria_local = [ {'org_id': 'befa', 'cc_seq': ['CX', 'US'], 'asn_seq': [31110, 26648], 'fqdn_seq': [u'makabimikmokvirutonet.biz'], 'ip_min_max_seq': [(3228707569, 3228707578)], }, ] body = {"category": "bots", "restriction": "public", "confidence": "medium", "sha1": "023a00e7c2ef04ee5b0f767ba73ee39734323432", "name": "virut", "proto": "tcp", "address": [{"cc": "XX", "ip": "1.1.1.1", "asn": "1"}, {"cc": "XX", "ip": "100.71.83.178", "asn": "1"}, {"cc": "XX", "ip": "102.71.83.178", "asn": "1"}], "fqdn": "domain.com", "url": "http://onet.pl", "source": "hpfeeds.dionaea", "time": "2013-07-01 20:37:20", "dport": "445", "rid": "023a00e7c2ef04ee5b0f767ba73ee397", "sport": "2147", "dip": "10.28.71.43", "id": "023a00e7c2ef04ee5b0f767ba73ee397"} # tested key:[test_value,[valid value]] input_data = {'ip': ['192.114.42.241', ['befa']], # 'cc':['CX', ['befa']], 'asn': ['31110', ['befa']], 'fqdn': ['makabimikmokvirutonet.biz', ['befa']]} self.auth_api_mock._get_inside_criteria.return_value = test_criteria_local for i in input_data: body = self.reset_body(body) if i == 'fqdn': body['fqdn'] = input_data[i][0] else: body['address'][0][i] = input_data[i][0] json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertItemsEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), (input_data[i][1], {}))
def test__get_client_and_urls_matched__only_fqdn(self): # domain is ok, category 'leak' test_criteria_local = [ {'org_id': 'org77', 'asn_seq': [], 'fqdn_seq': [u'spa.pl', u'ham.com', u'egg.pl', u'domain.com'], 'url_seq': [u'wąska.pl', 'example.com', 'http://aaa.pl/auth.php'], }, {'org_id': 'org78', 'asn_seq': [], 'fqdn_seq': [u'domain.com', u'kotpiesiwiewiorka.pl'], 'url_seq': [u'wąska.pl', 'example.com', 'http://aaa.pl/auth.php'], } ] body = self.prepare_mock(test_criteria_local) body['category'] = 'leak' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), (['org77', 'org78'], {})) # asn is ok, but category is 'leak' and domain is fake for test_criteria in test_criteria_local: test_criteria['asn_seq'] = [777, 888, 999] test_criteria['fqdn_seq'] = [u'domaincert.com', u'kot.pl'] body = self.prepare_mock(test_criteria_local) body['category'] = 'leak' for adr in body['address']: adr['asn'] = 888 json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), ([], {})) # in first element test_criteria_local fqdn_seq is fake, asn_seq in all elements is ok. test_criteria_local = [ {'org_id': 'org77', 'asn_seq': [888], 'fqdn_seq': [u'spam.pl', u'ham.pl', u'egg.pl'], 'url_seq': [u'wąska.pl', 'example.com', 'http://aaa.pl/auth.php'], }, {'org_id': 'org78', 'asn_seq': [666, 777, 888], 'fqdn_seq': [u'domain.com', u'kotpiesiwiewiorka.pl'], 'url_seq': [u'wąska.pl', 'example.com', 'http://aaa.pl/auth.php'], } ] body = self.prepare_mock(test_criteria_local) body['category'] = 'leak' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), (['org78'], {})) # test do not use check_pattern if category is 'leak' test_criteria_local = [ {'org_id': 'org22', 'asn_seq': [], 'fqdn_seq': [''], 'url_seq': [u'wąska.pl', 'example.com', 'http://aaa.pl/auth.php'], }] body = self.prepare_mock(test_criteria_local) body[u'url_pattern'] = u'*.*' body['category'] = 'leak' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), ([], {}))
def test__get_client_and_urls_matched__url_pattern(self): test_criteria_local = [ {'org_id': 'org4', 'asn_seq': [], 'fqdn_seq': [''], 'url_seq': ['wp.pl', u'wpą.pl'], }] body = self.prepare_mock(test_criteria_local) # test glob mach body[u'url_pattern'] = u'*.*' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), (['org4'], {'org4': ['wp.pl', u'wpą.pl']})) # test regexp match body[u'url_pattern'] = u'^w.*\\.[pu][ls]' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), (['org4'], {'org4': ['wp.pl', u'wpą.pl']})) # test glob, not match body[u'url_pattern'] = u'*/*' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), ([], {})) # test regexp not mach body[u'url_pattern'] = u'^w.*\\.[au][ls]' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), ([], {})) # test bad regexp body[u'url_pattern'] = u'^w.*\\.[au][ls' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), ([], {})) # test bad glob body[u'url_pattern'] = u'??!xx%$2ąść„ŋ…' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), ([], {})) # test glob with unicode, match body[u'url_pattern'] = u'??ą.pl' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), (['org4'], {'org4': [u'wpą.pl']})) # test regexp with unicode, match body[u'url_pattern'] = u'..*ą\\.pl' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), (['org4'], {'org4': [u'wpą.pl']})) # test regexp with unicode, match body[u'url_pattern'] = u'\w+(?<=ą)\\.[p]' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), (['org4'], {'org4': [u'wpą.pl']})) # test regexp with unicode, match body[u'url_pattern'] = u'\w+(?<!ą)\\.[p]' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), (['org4'], {'org4': [u'wp.pl']}))
def test__get_client_and_urls_matched__empty_fileds_asn_ip_cc_fqdn_address(self): test_criteria_local = [{'org_id': 'org1', 'cc_seq': ["PL", "DE", "US"], 'asn_seq': [42, 555, 12312], 'fqdn_seq': [u"nask.pl", u"onet.pl"], 'ip_min_max_seq': TEST_CRITERIA[-1]['ip_min_max_seq'], }, {'org_id': 'org2', 'cc_seq': ["RU", "DE", "US"], 'asn_seq': [4235], 'fqdn_seq': [u"nask.pl", u"cert.pl"], 'ip_min_max_seq': [(0, 4194303), (4294901760, 4294901792)], }] body = {"category": "bots", "restriction": "public", "confidence": "medium", "sha1": "023a00e7c2ef04ee5b0f767ba73ee39734323432", "name": "virut", "proto": "tcp", "address": [{"cc": "XX", "ip": "1.1.1.1", "asn": "1"}], "fqdn": "domain.com", "url": "http://onet.pl", "source": "hpfeeds.dionaea", "time": "2013-07-01 20:37:20", "dport": "445", "rid": "023a00e7c2ef04ee5b0f767ba73ee397", "sport": "2147", "dip": "10.28.71.43", "id": "023a00e7c2ef04ee5b0f767ba73ee397"} # test_all_fields self.auth_api_mock._get_inside_criteria.return_value = test_criteria_local body['fqdn'] = 'onet.pl' body['address'][0]['cc'] = 'GH' body['address'][0]['asn'] = '1234' body['address'][0]['ip'] = '73.2.233.171' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertItemsEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), (['org1'], {})) # test test_empty_fqdn if 'fqdn' in body: del body['fqdn'] body['address'][0]['cc'] = 'GH' body['address'][0]['asn'] = '1234' body['address'][0]['ip'] = '73.2.233.171' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertItemsEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), ([], {})) # test test_empty_cc if 'cc' in body['address'][0]: del body['address'][0]['cc'] body['fqdn'] = 'onet.pl' body['address'][0]['asn'] = '4235' body['address'][0]['ip'] = '73.2.233.171' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertItemsEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), (['org1', 'org2'], {})) # test test_empty_asn if 'asn' in body['address'][0]: del body['address'][0]['asn'] body['fqdn'] = 'www.onet.pl' body['address'][0]['cc'] = 'XX' body['address'][0]['ip'] = '73.2.233.171' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertItemsEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), (['org1'], {})) # test test_empty_ip if 'ip' in body['address'][0]: del body['address'][0]['ip'] body['fqdn'] = 'www.onet.com' body['address'][0]['cc'] = 'XX' body['address'][0]['asn'] = '1234' json_msg = json.dumps(body) self.assertRaises(AdjusterError, RecordDict.from_json, json_msg) # test test_empty_address if 'address' in body: del body['address'] body['fqdn'] = 'www.onet.pl' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertItemsEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), (['org1'], {})) # test test_empty_all if 'address' in body: del body['address'] if 'fqdn' in body: del body['fqdn'] json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertItemsEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), ([], {})) body = {"category": "bots", "restriction": "public", "confidence": "medium", "sha1": "023a00e7c2ef04ee5b0f767ba73ee39734323432", "name": "virut", "proto": "tcp", "address": [{"cc": "XX", "ip": "1.1.1.1", "asn": "1"}], "fqdn": "domain.com", "url": "http://onet.pl", "source": "hpfeeds.dionaea", "time": "2013-07-01 20:37:20", "dport": "445", "rid": "023a00e7c2ef04ee5b0f767ba73ee397", "sport": "2147", "dip": "10.28.71.43", "id": "023a00e7c2ef04ee5b0f767ba73ee397"} # test test_empty_ip_asn if 'ip' in body['address'][0]: del body['address'][0]['ip'] if 'asn' in body['address']: del body['address'][0]['asn'] body['fqdn'] = 'www.onet.pl' body['address'][0]['cc'] = 'PL' json_msg = json.dumps(body) self.assertRaises(AdjusterError, RecordDict.from_json, json_msg) # test test_empty_ip_cc if 'ip' in body['address'][0]: del body['address'][0]['ip'] if 'cc' in body['address'][0]: del body['address'][0]['cc'] body['fqdn'] = 'www.onet.pl' body['address'][0]['asn'] = '1234' json_msg = json.dumps(body) self.assertRaises(AdjusterError, RecordDict.from_json, json_msg) # test test_empty_ip_fqdn if 'ip' in body['address'][0]: del body['address'][0]['ip'] if 'fqdn' in body: del body['fqdn'] body['address'][0]['asn'] = '1234' body['address'][0]['cc'] = 'PL' json_msg = json.dumps(body) self.assertRaises(AdjusterError, RecordDict.from_json, json_msg) # test test_empty_asn_cc if 'asn' in body['address'][0]: del body['address'][0]['asn'] if 'cc' in body['address'][0]: del body['address'][0]['cc'] body['fqdn'] = 'www' body['address'][0]['ip'] = '77.2.233.171' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), (['org1'], {})) # test test_empty_asn_cc if 'asn' in body['address'][0]: del body['address'][0]['asn'] if 'fqdn' in body: del body['fqdn'] body['address'][0]['cc'] = 'PL' body['address'][0]['ip'] = '77.2.233.171' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), (['org1'], {})) # test test_empty_fqdn_cc if 'cc' in body['address'][0]: del body['address'][0]['cc'] if 'fqdn' in body: del body['fqdn'] body['address'][0]['asn'] = '42' body['address'][0]['ip'] = '7.2.233.171' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), (['org1'], {})) # test test_empty_asn_ip_fqdn if 'asn' in body['address'][0]: del body['address'][0]['asn'] if 'fqdn' in body: del body['fqdn'] if 'ip' in body['address'][0]: del body['address'][0]['ip'] body['address'][0]['cc'] = 'PL' json_msg = json.dumps(body) self.assertRaises(AdjusterError, RecordDict.from_json, json_msg) # test test_empty_asn_cc_fqdn if 'asn' in body['address'][0]: del body['address'][0]['asn'] if 'fqdn' in body: del body['fqdn'] if 'cc' in body['address'][0]: del body['address'][0]['cc'] body['address'][0]['ip'] = '77.2.233.171' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), (['org1'], {})) # test test_empty_asn_cc_fqdn if 'asn' in body['address'][0]: del body['address'][0]['asn'] if 'fqdn' in body: del body['fqdn'] if 'cc' in body['address'][0]: del body['address'][0]['cc'] body['address'][0]['ip'] = '77.2.233.171' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), (['org1'], {}))
def test__get_client_and_urls_matched__range_ip(self): test_criteria_local = [ { 'org_id': 'cli16bit', 'cc_seq': ['PL'], 'asn_seq': [21467], 'fqdn_seq': [u'ala.eu'], 'ip_min_max_seq': TEST_CRITERIA[-1]['ip_min_max_seq'], } ] body = self.prepare_mock(test_criteria_local) body['address'][0]['ip'] = '77.2.233.171' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), (['cli16bit'], {})) body['address'][0]['ip'] = '77.2.233.250' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), (['cli16bit'], {})) body['address'][0]['ip'] = '77.2.254.250' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), (['cli16bit'], {})) body['address'][0]['ip'] = '77.3.100.1' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), (['cli16bit'], {})) body['address'][0]['ip'] = '77.3.255.255' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), (['cli16bit'], {})) # test outside the network body['address'][0]['ip'] = '77.2.233.170' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), ([], {})) body['address'][0]['ip'] = '77.2.233.0' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), ([], {})) body['address'][0]['ip'] = '77.1.233.171' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), ([], {})) body['address'][0]['ip'] = '77.3.0.0' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), ([], {})) body['address'][0]['ip'] = '77.4.0.0' json_msg = json.dumps(body) record_dict = RecordDict.from_json(json_msg) self.assertEqual( self.filter.get_client_and_urls_matched(record_dict, self.fqdn_only_categories), ([], {}))