From 9d4ee238d76811ad4eccb079fed0c6b2df92ec8f Mon Sep 17 00:00:00 2001 From: Hussain Nagaria Date: Fri, 30 Apr 2021 14:52:16 +0530 Subject: [PATCH] fix: Remove duplicate validation function --- .../doctype/event_producer/event_producer.py | 3 +-- frappe/utils/__init__.py | 14 ++++++-------- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/frappe/event_streaming/doctype/event_producer/event_producer.py b/frappe/event_streaming/doctype/event_producer/event_producer.py index 3d97583549..a6068960ac 100644 --- a/frappe/event_streaming/doctype/event_producer/event_producer.py +++ b/frappe/event_streaming/doctype/event_producer/event_producer.py @@ -55,8 +55,7 @@ class EventProducer(Document): self.reload() def check_url(self): - if not frappe.utils.validate_url(self.producer_url): - frappe.throw(_('Invalid URL')) + frappe.utils.validate_url(self.producer_url, throw=True) # remove '/' from the end of the url like http://test_site.com/ # to prevent mismatch in get_url() results diff --git a/frappe/utils/__init__.py b/frappe/utils/__init__.py index 6942bcb5c5..051b896c56 100644 --- a/frappe/utils/__init__.py +++ b/frappe/utils/__init__.py @@ -156,10 +156,16 @@ def split_emails(txt): return email_list def validate_url(txt, throw=False): + if not url: + return True + try: url = urlparse(txt).netloc if not url: raise frappe.ValidationError + else: + return True + except Exception: if throw: frappe.throw( @@ -820,11 +826,3 @@ def groupby_metric(iterable: typing.Dict[str, list], key: str): for item in items: records.setdefault(item[key], {}).setdefault(category, []).append(item) return records - - -def validate_url(url_string): - try: - result = urlparse(url_string) - return result.scheme and result.scheme in ["http", "https", "ftp", "ftps"] - except Exception: - return False