Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 26.44 KB | None | 0 0
  1. class IdScoreCheck(SaveTestResults, unittest.TestCase):
  2.  
  3.     def setUp(self):
  4.         fake = Faker()
  5.         self.payload = {
  6.             "user_id": fake.isbn10(),
  7.             "email": fake.ascii_email(),
  8.             "address_street": fake.street_address(),
  9.             "address_subdivision": fake.secondary_address(),
  10.             "address_city": fake.city(),
  11.             "address_postal_code": fake.postcode(),
  12.             "address_country_code": fake.country_code(),
  13.             "ip_address": fake.ipv4(),
  14.             "name": fake.name(),
  15.             "phone_number": fake.phone_number()
  16.         }
  17.  
  18.     def test_payload_requires_user_id(self):
  19.         del self.payload["user_id"]
  20.         tester = app.test_client(self)
  21.         response = tester.post('/id_score', data=json.dumps(self.payload), content_type="application/json")
  22.         response_json = json.loads(response.data)
  23.         self.assertEqual(response.status_code, 400)
  24.         self.assertRegex(response_json["message"], "'user_id' is a required property")
  25.  
  26.     def test_payload_requires_a_email(self):
  27.         del self.payload["email"]
  28.         tester = app.test_client(self)
  29.         response = tester.post('/id_score', data=json.dumps(self.payload), content_type="application/json")
  30.         response_json = json.loads(response.data)
  31.         self.assertEqual(response.status_code, 400)
  32.         self.assertRegex(response_json["message"], "'email' is a required property")
  33.  
  34.     def test_payload_requires_address_street(self):
  35.         del self.payload["address_street"]
  36.         tester = app.test_client(self)
  37.         response = tester.post('/id_score', data=json.dumps(self.payload), content_type="application/json")
  38.         response_json = json.loads(response.data)
  39.         self.assertEqual(response.status_code, 400)
  40.         self.assertRegex(response_json["message"], "'address_street' is a required property")
  41.  
  42.     def test_payload_requires_address_subdivision(self):
  43.         del self.payload["address_subdivision"]
  44.         tester = app.test_client(self)
  45.         response = tester.post('/id_score', data=json.dumps(self.payload), content_type="application/json")
  46.         response_json = json.loads(response.data)
  47.         self.assertEqual(response.status_code, 400)
  48.         self.assertRegex(response_json["message"], "'address_subdivision' is a required property")
  49.  
  50.     def test_payload_requires_address_city(self):
  51.         del self.payload["address_city"]
  52.         tester = app.test_client(self)
  53.         response = tester.post('/id_score', data=json.dumps(self.payload), content_type="application/json")
  54.         response_json = json.loads(response.data)
  55.         self.assertEqual(response.status_code, 400)
  56.         self.assertRegex(response_json["message"], "'address_city' is a required property")
  57.  
  58.     def test_payload_requires_address_postal_code(self):
  59.         del self.payload["address_postal_code"]
  60.         tester = app.test_client(self)
  61.         response = tester.post('/id_score', data=json.dumps(self.payload), content_type="application/json")
  62.         response_json = json.loads(response.data)
  63.         self.assertEqual(response.status_code, 400)
  64.         self.assertRegex(response_json["message"], "'address_postal_code' is a required property")
  65.  
  66.  
  67.     def test_payload_requires_address_country_code(self):
  68.         del self.payload["address_country_code"]
  69.         tester = app.test_client(self)
  70.         response = tester.post('/id_score', data=json.dumps(self.payload), content_type="application/json")
  71.         response_json = json.loads(response.data)
  72.         self.assertEqual(response.status_code, 400)
  73.         self.assertRegex(response_json["message"], "'address_country_code' is a required property")
  74.  
  75.     def test_payload_requires_ip_address(self):
  76.         del self.payload["ip_address"]
  77.         tester = app.test_client(self)
  78.         response = tester.post('/id_score', data=json.dumps(self.payload), content_type="application/json")
  79.         response_json = json.loads(response.data)
  80.         self.assertEqual(response.status_code, 400)
  81.         self.assertRegex(response_json["message"], "'ip_address' is a required property")
  82.  
  83.     def test_payload_requires_name(self):
  84.         del self.payload["name"]
  85.         tester = app.test_client(self)
  86.         response = tester.post('/id_score', data=json.dumps(self.payload), content_type="application/json")
  87.         response_json = json.loads(response.data)
  88.         self.assertEqual(response.status_code, 400)
  89.         self.assertRegex(response_json["message"], "'name' is a required property")
  90.  
  91.     def test_payload_requires_phone_number(self):
  92.         del self.payload["phone_number"]
  93.         tester = app.test_client(self)
  94.         response = tester.post('/id_score', data=json.dumps(self.payload), content_type="application/json")
  95.         response_json = json.loads(response.data)
  96.         self.assertEqual(response.status_code, 400)
  97.         self.assertRegex(response_json["message"], "'phone_number' is a required property")
  98.  
  99.     def test_id_score_class_requires_a_object(self):
  100.         self.assertRaises(TypeError, lambda: IdScore())
  101.  
  102.     def test_id_score_instance_has_result_attribute(self):
  103.         id_score = IdScore(self.payload)
  104.         self.assertTrue(hasattr(id_score, 'result'))
  105.  
  106.     def test_id_score_instance_has_document_attribute(self):
  107.         id_score = IdScore(self.payload)
  108.         self.assertTrue(hasattr(id_score, 'document'))
  109.  
  110.     def test_id_score_instance_has_id_score_attribute(self):
  111.         id_score = IdScore(self.payload)
  112.         self.assertTrue(hasattr(id_score, 'id_score'))
  113.         self.assertEqual(id_score.id_score, 0)
  114.  
  115.     def test_id_score_instance_has_cost_attribute(self):
  116.         id_score = IdScore(self.payload)
  117.         self.assertTrue(hasattr(id_score, 'cost'))
  118.  
  119.     def test_id_score_instance_with_result_attribute_contains_email_obj(self):
  120.         id_score = IdScore(self.payload)
  121.         self.assertEqual(id_score.result["EMAIL"]["result"], "ERROR")
  122.         self.assertEqual(id_score.result["EMAIL"]["api"], {})
  123.  
  124.     def test_id_score_instance_with_result_attribute_contains_phone_number_obj(self):
  125.         id_score = IdScore(self.payload)
  126.         self.assertEqual(id_score.result["PHONE_NUMBER"]["result"], "ERROR")
  127.         self.assertEqual(id_score.result["PHONE_NUMBER"]["api"], {})
  128.  
  129.     def test_id_score_instance_with_result_attribute_contains_ip_address_obj(self):
  130.         id_score = IdScore(self.payload)
  131.         self.assertEqual(id_score.result["IP"]["result"], "ERROR")
  132.         self.assertEqual(id_score.result["IP"]["api"], {})
  133.  
  134.     def test_id_score_instance_with_result_attribute_contains_address_obj(self):
  135.         id_score = IdScore(self.payload)
  136.         self.assertEqual(id_score.result["ADDRESS"]["result"], "ERROR")
  137.         self.assertEqual(id_score.result["ADDRESS"]["api"], {})
  138.  
  139. @patch('data.log_call')
  140. @patch('data.IdScore.calculate_score')
  141. @patch('data.IdScore.check_address')
  142. @patch('data.IdScore.check_phone')
  143. @patch('data.IdScore.check_email')
  144. class IdScoreCheckIpWithAPIS(SaveTestResults, unittest.TestCase):
  145.  
  146.     def setUp(self):
  147.         fake = Faker()
  148.         self.payload = {
  149.             "user_id": fake.isbn10(),
  150.             "email": fake.ascii_email(),
  151.             "address_street": fake.street_address(),
  152.             "address_subdivision": fake.secondary_address(),
  153.             "address_city": fake.city(),
  154.             "address_postal_code": fake.postcode(),
  155.             "address_country_code": fake.country_code(),
  156.             "ip_address": fake.ipv4(),
  157.             "name": fake.name(),
  158.             "phone_number": fake.phone_number()
  159.         }
  160.  
  161.     def test_ip_address_found_on_fraudguard_api(self, mock_check_email, mock_check_phone, mock_check_address, mock_calculate_score, mock_log_call):
  162.         mock_check_email.return_value=mock_check_phone.return_value=mock_check_address.return_value=mock_calculate_score.return_value=mock_log_call.return_value = False
  163.         tester = app.test_client(self)
  164.         response = tester.post('/id_score', data=json.dumps(self.payload), content_type="application/json")
  165.         response_json = json.loads(response.data)
  166.         self.assertEqual(response.status_code, 200)
  167.         self.assertTrue(response_json["base_result"]["IP"]["api"]["fraudguard"])
  168.         self.assertEqual(response_json["results"]["fraudguard_response"], 1)
  169.         self.assertEqual(response_json["cost"]["fraudguard_cost"], 0.001)
  170.  
  171.     def test_ip_address_found_on_ip_stack_api(self, mock_check_email, mock_check_phone, mock_check_address, mock_calculate_score, mock_log_call):
  172.         mock_check_email.return_value=mock_check_phone.return_value=mock_check_address.return_value=mock_calculate_score.return_value=mock_log_call.return_value = False
  173.         tester = app.test_client(self)
  174.         response = tester.post('/id_score', data=json.dumps(self.payload), content_type="application/json")
  175.         response_json = json.loads(response.data)
  176.         self.assertEqual(response.status_code, 200)
  177.         self.assertTrue(response_json["base_result"]["IP"]["api"]["ip_stack"])
  178.         self.assertEqual(response_json["results"]["ip_stack_response"], 1)
  179.         self.assertEqual(response_json["cost"]["ip_stack_cost"], 0.001)
  180.  
  181.  
  182.  
  183. class IdScoreCheckIpCalculateScore(SaveTestResults, unittest.TestCase):
  184.  
  185.     def setUp(self):
  186.         fake = Faker()
  187.         self.payload = {
  188.             "user_id": fake.isbn10(),
  189.             "email": fake.ascii_email(),
  190.             "address_street": fake.street_address(),
  191.             "address_subdivision": fake.secondary_address(),
  192.             "address_city": fake.city(),
  193.             "address_postal_code": fake.postcode(),
  194.             "address_country_code": fake.country_code(),
  195.             "ip_address": fake.ipv4(),
  196.             "name": fake.name(),
  197.             "phone_number": fake.phone_number()
  198.         }
  199.  
  200.     @patch('data.log_call')
  201.     @patch('data.IdScore.check_address')
  202.     @patch('data.IdScore.check_phone')
  203.     @patch('data.IdScore.check_email')
  204.     def test_ip_address_total_score(self, mock_check_email, mock_check_phone, mock_check_address, mock_log_call):
  205.         mock_check_email.return_value=mock_check_phone.return_value=mock_check_address.return_value=mock_log_call.return_value = False
  206.         tester = app.test_client(self)
  207.         response = tester.post('/id_score', data=json.dumps(self.payload), content_type="application/json")
  208.         response_json = json.loads(response.data)
  209.         self.assertEqual(response.status_code, 200)
  210.  
  211.     @patch('data.location_match')
  212.     @patch('data.log_call')
  213.     @patch('data.IdScore.check_address')
  214.     @patch('data.IdScore.check_phone')
  215.     @patch('data.IdScore.check_email')
  216.     def test_ip_address_on_fraudguard_with_location_match(self, mock_check_email, mock_check_phone, mock_check_address, mock_log_call, mock_location_match):
  217.         mock_check_email.return_value=mock_check_phone.return_value=mock_check_address.return_value=mock_log_call.return_value = False
  218.         mock_location_match.return_value = True
  219.         tester = app.test_client(self)
  220.         response = tester.post('/id_score', data=json.dumps(self.payload), content_type="application/json")
  221.         response_json = json.loads(response.data)
  222.         self.assertEqual(response.status_code, 200)
  223.         self.assertEqual(response_json["chart"]["fg_location_match"],1)
  224.    
  225.     @patch('data.location_match')
  226.     @patch('data.log_call')
  227.     @patch('data.IdScore.check_address')
  228.     @patch('data.IdScore.check_phone')
  229.     @patch('data.IdScore.check_email')
  230.     def test_ip_address_on_fraudguard_without_location_match(self, mock_check_email, mock_check_phone, mock_check_address, mock_log_call, mock_location_match):
  231.         mock_check_email.return_value=mock_check_phone.return_value=mock_check_address.return_value=mock_log_call.return_value=mock_location_match.return_value = False
  232.         tester = app.test_client(self)
  233.         response = tester.post('/id_score', data=json.dumps(self.payload), content_type="application/json")
  234.         response_json = json.loads(response.data)
  235.         self.assertEqual(response.status_code, 200)
  236.         self.assertEqual(response_json["chart"]["fg_location_match"],-1)
  237.  
  238.     @patch('data.IdScore.fraudguard_risk_level_is_no_risk_or_open_proxy')
  239.     @patch('data.log_call')
  240.     @patch('data.IdScore.check_address')
  241.     @patch('data.IdScore.check_phone')
  242.     @patch('data.IdScore.check_email')
  243.     def test_ip_address_on_fraudguard_with_risk_level_is_unknown_or_open_proxy(self, mock_check_email, mock_check_phone, mock_check_address, mock_log_call, mock_fraudguard_risk_level_is_no_risk_or_open_proxy):
  244.         mock_check_email.return_value=mock_check_phone.return_value=mock_check_address.return_value=mock_log_call.return_value = False
  245.         mock_fraudguard_risk_level_is_no_risk_or_open_proxy.return_value = True
  246.         tester = app.test_client(self)
  247.         response = tester.post('/id_score', data=json.dumps(self.payload), content_type="application/json")
  248.         response_json = json.loads(response.data)
  249.         self.assertEqual(response.status_code, 200)
  250.         self.assertEqual(response_json["chart"]["fg_risk_level_no_risk_or_open_proxy"],1)
  251.  
  252.     @patch('data.IdScore.fraudguard_risk_level_is_no_risk_or_open_proxy')
  253.     @patch('data.log_call')
  254.     @patch('data.IdScore.check_address')
  255.     @patch('data.IdScore.check_phone')
  256.     @patch('data.IdScore.check_email')
  257.     def test_ip_address_on_fraudguard_with_risk_level_is_not_unknown_or_open_proxy(self, mock_check_email, mock_check_phone, mock_check_address, mock_log_call, mock_fraudguard_risk_level_is_no_risk_or_open_proxy):
  258.         mock_check_email.return_value=mock_check_phone.return_value=mock_check_address.return_value=mock_log_call.return_value=mock_fraudguard_risk_level_is_no_risk_or_open_proxy.return_value = False
  259.         tester = app.test_client(self)
  260.         response = tester.post('/id_score', data=json.dumps(self.payload), content_type="application/json")
  261.         response_json = json.loads(response.data)
  262.         self.assertEqual(response.status_code, 200)
  263.         self.assertEqual(response_json["chart"]["fg_risk_level_no_risk_or_open_proxy"],-1)
  264.  
  265.     @patch('data.IdScore.fraudguard_threat_level_is_unknown')
  266.     @patch('data.log_call')
  267.     @patch('data.IdScore.check_address')
  268.     @patch('data.IdScore.check_phone')
  269.     @patch('data.IdScore.check_email')
  270.     def test_ip_address_on_fraudguard_with_threat_level_unknown(self, mock_check_email, mock_check_phone, mock_check_address, mock_log_call, mock_fraudguard_threat_level_is_unknown):
  271.         mock_check_email.return_value=mock_check_phone.return_value=mock_check_address.return_value=mock_log_call.return_value = False
  272.         mock_fraudguard_threat_level_is_unknown.return_value = True
  273.         tester = app.test_client(self)
  274.         response = tester.post('/id_score', data=json.dumps(self.payload), content_type="application/json")
  275.         response_json = json.loads(response.data)
  276.         self.assertEqual(response.status_code, 200)
  277.         self.assertEqual(response_json["chart"]["fg_threat_unknown"],1)
  278.  
  279.     @patch('data.IdScore.fraudguard_threat_level_is_unknown')
  280.     @patch('data.log_call')
  281.     @patch('data.IdScore.check_address')
  282.     @patch('data.IdScore.check_phone')
  283.     @patch('data.IdScore.check_email')
  284.     def test_ip_address_on_fraudguard_without_threat_level_unknown(self, mock_check_email, mock_check_phone, mock_check_address, mock_log_call, mock_fraudguard_threat_level_is_unknown):
  285.         mock_check_email.return_value=mock_check_phone.return_value=mock_check_address.return_value=mock_log_call.return_value=mock_fraudguard_threat_level_is_unknown.return_value = False
  286.         tester = app.test_client(self)
  287.         response = tester.post('/id_score', data=json.dumps(self.payload), content_type="application/json")
  288.         response_json = json.loads(response.data)
  289.         self.assertEqual(response.status_code, 200)
  290.         self.assertEqual(response_json["chart"]["fg_threat_unknown"],-1)
  291.  
  292.     @patch('orm.FraudguardAPI.check')
  293.     @patch('data.log_call')
  294.     @patch('data.IdScore.check_address')
  295.     @patch('data.IdScore.check_phone')
  296.     @patch('data.IdScore.check_email')
  297.     def test_ip_address_no_response_from_fraudguard(self, mock_check_email, mock_check_phone, mock_check_address, mock_log_call, mock_check):
  298.         mock_check_email.return_value=mock_check_phone.return_value=mock_check_address.return_value=mock_log_call.return_value = False
  299.         mock_check.return_value = {}
  300.         tester = app.test_client(self)
  301.         response = tester.post('/id_score', data=json.dumps(self.payload), content_type="application/json")
  302.         response_json = json.loads(response.data)
  303.         self.assertEqual(response.status_code, 200)
  304.         self.assertEqual(response_json["chart"]["fg_location_match"],0)
  305.         self.assertEqual(response_json["chart"]["fg_risk_level_no_risk_or_open_proxy"],0)
  306.         self.assertEqual(response_json["chart"]["fg_risk_level_no_risk_or_open_proxy"],0)
  307.         self.assertEqual(response_json["chart"]["fg_threat_unknown"],0)
  308.  
  309.     @patch('data.location_match')
  310.     @patch('data.log_call')
  311.     @patch('data.IdScore.check_address')
  312.     @patch('data.IdScore.check_phone')
  313.     @patch('data.IdScore.check_email')
  314.     def test_ip_address_on_ip_stack_with_location_match(self, mock_check_email, mock_check_phone, mock_check_address, mock_log_call, mock_location_match):
  315.         mock_check_email.return_value=mock_check_phone.return_value=mock_check_address.return_value=mock_log_call.return_value = False
  316.         mock_location_match.return_value = True
  317.         tester = app.test_client(self)
  318.         response = tester.post('/id_score', data=json.dumps(self.payload), content_type="application/json")
  319.         response_json = json.loads(response.data)
  320.         self.assertEqual(response.status_code, 200)
  321.         self.assertEqual(response_json["chart"]["ip_stack_location_match"],1)
  322.  
  323.     @patch('data.location_match')
  324.     @patch('data.log_call')
  325.     @patch('data.IdScore.check_address')
  326.     @patch('data.IdScore.check_phone')
  327.     @patch('data.IdScore.check_email')
  328.     def test_ip_address_on_ip_stack_without_location_match(self, mock_check_email, mock_check_phone, mock_check_address, mock_log_call, mock_location_match):
  329.         mock_check_email.return_value=mock_check_phone.return_value=mock_check_address.return_value=mock_log_call.return_value=mock_location_match.return_value = False
  330.         tester = app.test_client(self)
  331.         response = tester.post('/id_score', data=json.dumps(self.payload), content_type="application/json")
  332.         response_json = json.loads(response.data)
  333.         self.assertEqual(response.status_code, 200)
  334.         self.assertEqual(response_json["chart"]["ip_stack_location_match"],-1)
  335.  
  336.     @patch('data.IdScore.ip_stack_is_a_proxy')
  337.     @patch('data.log_call')
  338.     @patch('data.IdScore.check_address')
  339.     @patch('data.IdScore.check_phone')
  340.     @patch('data.IdScore.check_email')
  341.     def test_ip_address_on_ip_stack_is_a_proxy(self, mock_check_email, mock_check_phone, mock_check_address, mock_log_call, mock_ip_stack_is_a_proxy):
  342.         mock_check_email.return_value=mock_check_phone.return_value=mock_check_address.return_value=mock_log_call.return_value = False
  343.         mock_ip_stack_is_a_proxy.return_value = True
  344.         tester = app.test_client(self)
  345.         response = tester.post('/id_score', data=json.dumps(self.payload), content_type="application/json")
  346.         response_json = json.loads(response.data)
  347.         self.assertEqual(response.status_code, 200)
  348.         self.assertEqual(response_json["chart"]["ip_stack_is_proxy"],1)
  349.  
  350.     @patch('data.IdScore.ip_stack_is_a_proxy')
  351.     @patch('data.log_call')
  352.     @patch('data.IdScore.check_address')
  353.     @patch('data.IdScore.check_phone')
  354.     @patch('data.IdScore.check_email')
  355.     def test_ip_address_on_ip_stack_is_not_proxy(self, mock_check_email, mock_check_phone, mock_check_address, mock_log_call, mock_ip_stack_is_a_proxy):
  356.         mock_check_email.return_value=mock_check_phone.return_value=mock_check_address.return_value=mock_log_call.return_value=mock_ip_stack_is_a_proxy.return_value = False
  357.         tester = app.test_client(self)
  358.         response = tester.post('/id_score', data=json.dumps(self.payload), content_type="application/json")
  359.         response_json = json.loads(response.data)
  360.         self.assertEqual(response.status_code, 200)
  361.         self.assertEqual(response_json["chart"]["ip_stack_is_proxy"],-1)
  362.  
  363.  
  364.     @patch('data.IdScore.ip_stack_is_a_crawler')
  365.     @patch('data.log_call')
  366.     @patch('data.IdScore.check_address')
  367.     @patch('data.IdScore.check_phone')
  368.     @patch('data.IdScore.check_email')
  369.     def test_ip_address_on_ip_stack_is_a_crawler(self, mock_check_email, mock_check_phone, mock_check_address, mock_log_call, mock_ip_stack_is_a_crawler):
  370.         mock_check_email.return_value=mock_check_phone.return_value=mock_check_address.return_value=mock_log_call.return_value = False
  371.         mock_ip_stack_is_a_crawler.return_value = True
  372.         tester = app.test_client(self)
  373.         response = tester.post('/id_score', data=json.dumps(self.payload), content_type="application/json")
  374.         response_json = json.loads(response.data)
  375.  
  376.         self.assertEqual(response.status_code, 200)
  377.         self.assertEqual(response_json["chart"]["ip_stack_is_crawler"],1)
  378.  
  379.     @patch('data.IdScore.ip_stack_is_a_crawler')
  380.     @patch('data.log_call')
  381.     @patch('data.IdScore.check_address')
  382.     @patch('data.IdScore.check_phone')
  383.     @patch('data.IdScore.check_email')
  384.     def test_ip_address_on_ip_stack_is_not_a_crawler(self, mock_check_email, mock_check_phone, mock_check_address, mock_log_call, mock_ip_stack_is_a_crawler):
  385.         mock_check_email.return_value=mock_check_phone.return_value=mock_check_address.return_value=mock_log_call.return_value=mock_ip_stack_is_a_crawler.return_value = False
  386.         tester = app.test_client(self)
  387.         response = tester.post('/id_score', data=json.dumps(self.payload), content_type="application/json")
  388.         response_json = json.loads(response.data)
  389.         self.assertEqual(response.status_code, 200)
  390.         self.assertEqual(response_json["chart"]["ip_stack_is_crawler"],-1)
  391.  
  392.     @patch('data.IdScore.ip_stack_is_a_tor')
  393.     @patch('data.log_call')
  394.     @patch('data.IdScore.check_address')
  395.     @patch('data.IdScore.check_phone')
  396.     @patch('data.IdScore.check_email')
  397.     def test_ip_address_on_ip_stack_is_a_tor(self, mock_check_email, mock_check_phone, mock_check_address, mock_log_call, mock_ip_stack_is_a_tor):
  398.         mock_check_email.return_value=mock_check_phone.return_value=mock_check_address.return_value=mock_log_call.return_value = False
  399.         mock_ip_stack_is_a_tor.return_value = True
  400.         tester = app.test_client(self)
  401.         response = tester.post('/id_score', data=json.dumps(self.payload), content_type="application/json")
  402.         response_json = json.loads(response.data)
  403.         self.assertEqual(response.status_code, 200)
  404.         self.assertEqual(response_json["chart"]["ip_stack_is_tor"],1)
  405.  
  406.     @patch('data.IdScore.ip_stack_is_a_tor')
  407.     @patch('data.log_call')
  408.     @patch('data.IdScore.check_address')
  409.     @patch('data.IdScore.check_phone')
  410.     @patch('data.IdScore.check_email')
  411.     def test_ip_address_on_ip_stack_is_not_a_tor(self, mock_check_email, mock_check_phone, mock_check_address, mock_log_call, mock_ip_stack_is_a_tor):
  412.         mock_check_email.return_value=mock_check_phone.return_value=mock_check_address.return_value=mock_log_call.return_value=mock_ip_stack_is_a_tor.return_value = False
  413.         tester = app.test_client(self)
  414.         response = tester.post('/id_score', data=json.dumps(self.payload), content_type="application/json")
  415.         response_json = json.loads(response.data)
  416.         self.assertEqual(response.status_code, 200)
  417.         self.assertEqual(response_json["chart"]["ip_stack_is_tor"],-1)
  418.  
  419.     @patch('data.IdScore.ip_stack_is_low_threat_level')
  420.     @patch('data.log_call')
  421.     @patch('data.IdScore.check_address')
  422.     @patch('data.IdScore.check_phone')
  423.     @patch('data.IdScore.check_email')
  424.     def test_ip_address_on_ip_stack_is_low_threat_level(self, mock_check_email, mock_check_phone, mock_check_address, mock_log_call, mock_ip_stack_is_low_threat_level):
  425.         mock_check_email.return_value=mock_check_phone.return_value=mock_check_address.return_value=mock_log_call.return_value = False
  426.         mock_ip_stack_is_low_threat_level.return_value = True
  427.         tester = app.test_client(self)
  428.         response = tester.post('/id_score', data=json.dumps(self.payload), content_type="application/json")
  429.         response_json = json.loads(response.data)
  430.  
  431.         self.assertEqual(response.status_code, 200)
  432.         self.assertEqual(response_json["chart"]["ip_stack_threat_level_low"],1)
  433.  
  434.     @patch('data.IdScore.ip_stack_is_low_threat_level')
  435.     @patch('data.log_call')
  436.     @patch('data.IdScore.check_address')
  437.     @patch('data.IdScore.check_phone')
  438.     @patch('data.IdScore.check_email')
  439.     def test_ip_address_on_ip_stack_is_not_low_threat_level(self, mock_check_email, mock_check_phone, mock_check_address, mock_log_call, mock_ip_stack_is_low_threat_level):
  440.         mock_check_email.return_value=mock_check_phone.return_value=mock_check_address.return_value=mock_log_call.return_value=mock_ip_stack_is_low_threat_level.return_value = False
  441.         tester = app.test_client(self)
  442.         response = tester.post('/id_score', data=json.dumps(self.payload), content_type="application/json")
  443.         response_json = json.loads(response.data)
  444.         self.assertEqual(response.status_code, 200)
  445.         self.assertEqual(response_json["chart"]["ip_stack_threat_level_low"],-1)
  446.  
  447.     @patch('orm.IPStack.check')
  448.     @patch('data.log_call')
  449.     @patch('data.IdScore.check_address')
  450.     @patch('data.IdScore.check_phone')
  451.     @patch('data.IdScore.check_email')
  452.     def test_ip_address_no_response_from_ip_stack(self, mock_check_email, mock_check_phone, mock_check_address, mock_log_call, mock_check):
  453.         mock_check_email.return_value=mock_check_phone.return_value=mock_check_address.return_value=mock_log_call.return_value = False
  454.         mock_check.return_value = {}
  455.         tester = app.test_client(self)
  456.         response = tester.post('/id_score', data=json.dumps(self.payload), content_type="application/json")
  457.         response_json = json.loads(response.data)
  458.         self.assertEqual(response.status_code, 200)
  459.         self.assertEqual(response_json["chart"]["ip_stack_location_match"],0)
  460.         self.assertEqual(response_json["chart"]["ip_stack_is_proxy"],0)
  461.         self.assertEqual(response_json["chart"]["ip_stack_is_crawler"],0)
  462.         self.assertEqual(response_json["chart"]["ip_stack_is_tor"],0)
  463.         self.assertEqual(response_json["chart"]["ip_stack_threat_level_low"],0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement