Skip to content

Commit 895ec73

Browse files
committed
Use internal naming convention
1 parent 90336c4 commit 895ec73

File tree

3 files changed

+26
-21
lines changed

3 files changed

+26
-21
lines changed

minfraud/request.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from voluptuous import MultipleInvalid
1414

1515
from .errors import InvalidRequestError
16-
from .validation import validate_report, validate_transaction
16+
from .validation import _validate_report, _validate_transaction
1717

1818
_TYPO_DOMAINS = {
1919
# gmail.com
@@ -268,7 +268,7 @@ def prepare_report(request: Dict[str, Any], validate: bool):
268268
cleaned_request = _copy_and_clean(request)
269269
if validate:
270270
try:
271-
validate_report(cleaned_request)
271+
_validate_report(cleaned_request)
272272
except MultipleInvalid as ex:
273273
raise InvalidRequestError(f"Invalid report data: {ex}") from ex
274274
return cleaned_request
@@ -283,7 +283,7 @@ def prepare_transaction(
283283
cleaned_request = _copy_and_clean(request)
284284
if validate:
285285
try:
286-
validate_transaction(cleaned_request)
286+
_validate_transaction(cleaned_request)
287287
except MultipleInvalid as ex:
288288
raise InvalidRequestError(f"Invalid transaction data: {ex}") from ex
289289

minfraud/validation.py

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from typing import Optional
1616

1717
from email_validator import validate_email # type: ignore
18-
from voluptuous import All, Any, In, Match, Range, Required, Schema
18+
from voluptuous import All, Any, In, Match, MultipleInvalid, Range, Required, Schema
1919
from voluptuous.error import UrlInvalid
2020

2121
# Pylint doesn't like the private function type naming for the callable
@@ -296,7 +296,7 @@ def _uri(s: str) -> str:
296296
return s
297297

298298

299-
validate_transaction = Schema(
299+
_validate_transaction = Schema(
300300
{
301301
"account": {
302302
"user_id": str,
@@ -385,7 +385,7 @@ def _transaction_id(s: Optional[str]) -> str:
385385
raise ValueError
386386

387387

388-
validate_report_schema = Schema(
388+
_validate_report_schema = Schema(
389389
{
390390
"chargeback_code": str,
391391
"ip_address": _ip_address,
@@ -398,16 +398,19 @@ def _transaction_id(s: Optional[str]) -> str:
398398
)
399399

400400

401-
def validate_at_least_one_identifier_field(report):
401+
def _validate_at_least_one_identifier_field(report):
402402
optional_fields = ["ip_address", "maxmind_id", "minfraud_id", "transaction_id"]
403403
if not any(field in report for field in optional_fields):
404-
raise ValueError(
405-
"The report must contain at least one of the following fields: 'ip_address', 'maxmind_id', 'minfraud_id', 'transaction_id'."
404+
# We return MultipleInvalid instead of ValueError to be consistent with what
405+
# voluptuous returns.
406+
raise MultipleInvalid(
407+
"The report must contain at least one of the following fields: "
408+
"'ip_address', 'maxmind_id', 'minfraud_id', 'transaction_id'."
406409
)
407410
return True
408411

409412

410-
def validate_report(report):
411-
validate_report_schema(report)
412-
validate_at_least_one_identifier_field(report)
413+
def _validate_report(report):
414+
_validate_report_schema(report)
415+
_validate_at_least_one_identifier_field(report)
413416
return True

tests/test_validation.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from decimal import Decimal
22
from voluptuous import MultipleInvalid
33

4-
from minfraud.validation import validate_transaction, validate_report
4+
from minfraud.validation import _validate_transaction, _validate_report
55

66
import unittest
77

@@ -17,12 +17,12 @@ def setup_transaction(self, transaction):
1717
def check_invalid_transaction(self, transaction):
1818
self.setup_transaction(transaction)
1919
with self.assertRaises(MultipleInvalid, msg=f"{transaction} is invalid"):
20-
validate_transaction(transaction)
20+
_validate_transaction(transaction)
2121

2222
def check_transaction(self, transaction):
2323
self.setup_transaction(transaction)
2424
try:
25-
validate_transaction(transaction)
25+
_validate_transaction(transaction)
2626
except MultipleInvalid as e:
2727
self.fail(f"MultipleInvalid {e.msg} thrown for {transaction}")
2828

@@ -55,15 +55,15 @@ def check_invalid_report(self, report):
5555

5656
def check_invalid_report_no_setup(self, report):
5757
with self.assertRaises(MultipleInvalid, msg=f"{report} is invalid"):
58-
validate_report(report)
58+
_validate_report(report)
5959

6060
def check_report(self, report):
6161
self.setup_report(report)
6262
self.check_report_no_setup(report)
6363

6464
def check_report_no_setup(self, report):
6565
try:
66-
validate_report(report)
66+
_validate_report(report)
6767
except MultipleInvalid as e:
6868
self.fail(f"MultipleInvalid {e.msg} thrown for {report}")
6969

@@ -79,7 +79,7 @@ def test_transaction_without_device(self):
7979
"user_id": "usr",
8080
}
8181
}
82-
validate_transaction(transaction)
82+
_validate_transaction(transaction)
8383

8484

8585
class TestAccount(unittest.TestCase, ValidationBase):
@@ -252,8 +252,8 @@ def test_ip_address(self):
252252
self.check_invalid_transaction({"device": {"ip_address": invalid}})
253253

254254
def test_missing_ip(self):
255-
validate_transaction({"device": {}})
256-
validate_transaction(
255+
_validate_transaction({"device": {}})
256+
_validate_transaction(
257257
{
258258
"device": {
259259
"user_agent": "foo",
@@ -262,7 +262,7 @@ def test_missing_ip(self):
262262
)
263263

264264
def test_missing_device(self):
265-
validate_transaction({})
265+
_validate_transaction({})
266266

267267
def test_user_agent(self):
268268
self.check_transaction_str_type("device", "user_agent")
@@ -439,6 +439,8 @@ def test_tag(self):
439439
self.check_invalid_report({"tag": bad})
440440

441441
def test_report_valid_identifier(self):
442+
self.check_invalid_report_no_setup({"tag": "chargeback"})
443+
442444
self.check_report_no_setup({"tag": "chargeback", "ip_address": "1.1.1.1"})
443445
self.check_report_no_setup(
444446
{"tag": "chargeback", "minfraud_id": "58fa38d8-4b87-458b-a22b-f00eda1aa20d"}

0 commit comments

Comments
 (0)