def test_validates_ip(self): for entry in self.ipv6_samples_valid: validation.assert_ip(entry) self.assertRaises(ValueError, validation.assert_ip, self.correct_email) self.assertRaises(ValueError, validation.assert_ip, self.incorrect_email)
def query_email_and_ip_address(self, email, ip, **params): """Query a risk score information for the provided combination of an Email and IP address :param email: RFC2822-compliant Email :param ip: RFC791-compliant IP :param params: (Optional) keyword-argument form for parameters such as urid, first_name, last_name, etc. :return: JSON dict of the response generated by the API :type email: str :type ip: str :type params: kwargs :Example: >>> from emailage.client import EmailageClient >>> client = EmailageClient('My account SID', 'My auth token', sandbox=True) >>> response_json = client.query_email_and_ip_address('*****@*****.**', '209.85.220.41') :Example: >>> from emailage.client import EmailageClient >>> client = EmailageClient('My account SID', 'My auth token', sandbox=True) >>> response_json = client.query_email_and_ip_address('*****@*****.**', '209.85.220.41', ... urid='My record ID for [email protected] and 209.85.220.41') """ validation.assert_email(email) validation.assert_ip(ip) return self.query((email, ip), **params)
def query(self, query, **params): """ Base query method providing support for email, IP address, and optional additional parameters :param query: RFC2822-compliant Email, RFC791-compliant IP, or both :param params: keyword-argument form for parameters such as urid, first_name, last_name, etc. :return: JSON dict of the response generated by the API :type query: str | (str, str) :type params: kwargs :Example: >>> from emailage.client import EmailageClient >>> client = EmailageClient('consumer_secret', 'consumer_token') >>> response_json = client.query('*****@*****.**') >>> # Email address only >>> response_json = client.query('*****@*****.**') >>> # IP Address only >>> response_json = client.query('209.85.220.41') >>> # For a combination. Please note the order >>> response_json = client.query(('*****@*****.**', '209.85.220.41')) >>> # Pass a User Defined Record ID (URID) as an optional parameter >>> response_json = client.query('*****@*****.**', urid='My record ID for [email protected]') """ if type(query) is tuple: validation.assert_email(query[0]) validation.assert_ip(query[1]) query = '+'.join(query) params['query'] = query return self.request('', **params)
def test_validates_valid_ipv4(self): failed_ips = [] ip_data_source = self.ipv4_samples_valid for ipv4 in ip_data_source: try: validation.assert_ip(ipv4) except ValueError as exc: failed_ips.append(ipv4) self.assertListEqual([], failed_ips)
def query_ip_address(self, ip, **params): """Query a risk score information for the provided IP address. This method differs from #query in that it ensures that the string supplied is in rfc791 format. Args: ip (str) **params: keywords arguments for #query """ validation.assert_ip(ip) return self.query(ip, **params)
def query_email_and_ip_address(self, email, ip, **params): """Query a risk score information for the provided combination of an Email and IP address. This method differs from #query in that it ensures that the strings supplied are in rfc2822 and rfc791 formats. Args: email (str) ip (str) **params: keywords arguments for #query """ validation.assert_email(email) validation.assert_ip(ip) return self.query((email, ip), **params)
def query_ip_address(self, ip, **params): """Query a risk score information for the provided IP address. :param ip: RFC791-compliant IP :param params: (Optional) keyword-argument form for parameters such as urid, first_name, last_name, etc. :return: JSON dict of the response generated by the API :type ip: str :type params: kwargs :Example: >>> from emailage.client import EmailageClient >>> client = EmailageClient('My account SID', 'My auth token', sandbox=True) >>> response_json = client.query_ip_address('209.85.220.41') """ validation.assert_ip(ip) return self.query(ip, **params)
def test_validates_ip(self): validation.assert_ip(self.correct_ip) self.assertRaises(ValueError, validation.assert_ip, self.incorrect_ip) self.assertRaises(ValueError, validation.assert_ip, self.correct_email) self.assertRaises(ValueError, validation.assert_ip, self.incorrect_email)