feat: add unit tests for URL tracker functions
This commit is contained in:
parent
d50e579317
commit
7e66c2be50
1 changed files with 55 additions and 0 deletions
|
|
@ -22,6 +22,7 @@ from frappe.installer import parse_app_name
|
|||
from frappe.model.document import Document
|
||||
from frappe.tests.utils import FrappeTestCase, MockedRequestTestCase, change_settings
|
||||
from frappe.utils import (
|
||||
add_trackers_to_url,
|
||||
ceil,
|
||||
dict_to_str,
|
||||
evaluate_filters,
|
||||
|
|
@ -35,7 +36,9 @@ from frappe.utils import (
|
|||
get_site_info,
|
||||
get_sites,
|
||||
get_url,
|
||||
map_trackers,
|
||||
money_in_words,
|
||||
parse_and_map_trackers_from_url,
|
||||
parse_timedelta,
|
||||
random_string,
|
||||
remove_blanks,
|
||||
|
|
@ -1349,3 +1352,55 @@ class TestCrypto(FrappeTestCase):
|
|||
sha256_hash(b"The quick brown fox jumps over the lazy dog"),
|
||||
"d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592",
|
||||
)
|
||||
|
||||
|
||||
class TestURLTrackers(FrappeTestCase):
|
||||
def test_add_trackers_to_url(self):
|
||||
url = "https://example.com"
|
||||
source = "test_source"
|
||||
campaign = "test_campaign"
|
||||
medium = "test_medium"
|
||||
content = "test_content"
|
||||
|
||||
with patch("frappe.db.get_value") as mock_get_value:
|
||||
mock_get_value.side_effect = lambda *args: args[1] # Return unslugged input value
|
||||
result = add_trackers_to_url(url, source, campaign, medium, content)
|
||||
|
||||
expected = "https://example.com?utm_source=test_source&utm_medium=test_medium&utm_campaign=test_campaign&utm_content=test_content"
|
||||
self.assertEqual(result, expected)
|
||||
|
||||
def test_parse_and_map_trackers_from_url(self):
|
||||
url = "https://example.com?utm_source=test_source&utm_medium=test_medium&utm_campaign=test_campaign&utm_content=test_content"
|
||||
|
||||
with patch("frappe.db.get_value") as mock_get_value:
|
||||
mock_get_value.return_value = None # Simulate no existing records
|
||||
result = parse_and_map_trackers_from_url(url)
|
||||
|
||||
expected = {
|
||||
"utm_source": "test_source",
|
||||
"utm_medium": "test_medium",
|
||||
"utm_campaign": "test_campaign",
|
||||
"utm_content": "test_content",
|
||||
}
|
||||
self.assertEqual(result, expected)
|
||||
|
||||
def test_map_trackers(self):
|
||||
url_trackers = {
|
||||
"utm_source": "test_source",
|
||||
"utm_medium": "test_medium",
|
||||
"utm_campaign": "test_campaign",
|
||||
"utm_content": "test_content",
|
||||
}
|
||||
|
||||
result = map_trackers(url_trackers, create=True)
|
||||
|
||||
expected = {
|
||||
"utm_source": frappe.get_doc("UTM Source", "test_source"),
|
||||
"utm_medium": frappe.get_doc("UTM Medium", "test_medium"),
|
||||
"utm_campaign": frappe.get_doc("UTM Campaign", "test_campaign"),
|
||||
"utm_content": "test_content",
|
||||
}
|
||||
self.assertDocumentEqual(result["utm_source"], expected["utm_source"])
|
||||
self.assertDocumentEqual(result["utm_medium"], expected["utm_medium"])
|
||||
self.assertDocumentEqual(result["utm_campaign"], expected["utm_campaign"])
|
||||
self.assertEqual(result["utm_content"], expected["utm_content"])
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue