Skip to content

Commit

Permalink
Increased test coverage and handled parameters more efficiently
Browse files Browse the repository at this point in the history
  • Loading branch information
zachartmann committed Aug 28, 2019
1 parent da92587 commit f858c9d
Show file tree
Hide file tree
Showing 12 changed files with 301 additions and 54 deletions.
85 changes: 50 additions & 35 deletions lib/createsend/journey_email.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,58 +13,73 @@ def __init__(self, auth=None, journey_email_id=None):
self.journey_email_id = journey_email_id
super(JourneyEmail, self).__init__(auth)

def bounces(self, date="", page=1, page_size=1000, order_field="date", order_direction="asc"):
def bounces(self, date=None, page=None, page_size=None, order_direction=None):
"""Retrieves the bounces for this journey email."""
params = {
"date": date,
"page": page,
"pagesize": page_size,
"orderfield": order_field,
"orderdirection": order_direction}
params = {}
if date is not None:
params["date"] = date
if page is not None:
params["page"] = page
if page_size is not None:
params["pagesize"] = page_size
if order_direction is not None:
params["orderdirection"] = order_direction
response = self._get(self.uri_for("bounces"), params=params)
return json_to_py(response)

def clicks(self, date="", page=1, page_size=1000, order_field="date", order_direction="asc"):
def clicks(self, date=None, page=None, page_size=None, order_direction=None):
"""Retrieves the clicks for this journey email."""
params = {
"date": date,
"page": page,
"pagesize": page_size,
"orderfield": order_field,
"orderdirection": order_direction}
params = {}
if date is not None:
params["date"] = date
if page is not None:
params["page"] = page
if page_size is not None:
params["pagesize"] = page_size
if order_direction is not None:
params["orderdirection"] = order_direction
response = self._get(self.uri_for("clicks"), params=params)
return json_to_py(response)

def opens(self, date="", page=1, page_size=1000, order_field="date", order_direction="asc"):
def opens(self, date=None, page=None, page_size=None, order_direction=None):
"""Retrieves the opens for this journey email."""
params = {
"date": date,
"page": page,
"pagesize": page_size,
"orderfield": order_field,
"orderdirection": order_direction}
params = {}
if date is not None:
params["date"] = date
if page is not None:
params["page"] = page
if page_size is not None:
params["pagesize"] = page_size
if order_direction is not None:
params["orderdirection"] = order_direction
response = self._get(self.uri_for("opens"), params=params)
return json_to_py(response)

def recipients(self, date="", page=1, page_size=1000, order_field="date", order_direction="asc"):
def recipients(self, date=None, page=None, page_size=None, order_direction=None):
"""Retrieves the recipients for this journey email."""
params = {
"date": date,
"page": page,
"pagesize": page_size,
"orderfield": order_field,
"orderdirection": order_direction}
params = {}
if date is not None:
params["date"] = date
if page is not None:
params["page"] = page
if page_size is not None:
params["pagesize"] = page_size
if order_direction is not None:
params["orderdirection"] = order_direction
response = self._get(self.uri_for("recipients"), params=params)
return json_to_py(response)

def unsubscribes(self, date="", page=1, page_size=1000, order_field="date", order_direction="asc"):
def unsubscribes(self, date=None, page=None, page_size=None, order_direction=None):
"""Retrieves the unsubscribes for this journey email."""
params = {
"date": date,
"page": page,
"pagesize": page_size,
"orderfield": order_field,
"orderdirection": order_direction}
params = {}
if date is not None:
params["date"] = date
if page is not None:
params["page"] = page
if page_size is not None:
params["pagesize"] = page_size
if order_direction is not None:
params["orderdirection"] = order_direction
response = self._get(self.uri_for("unsubscribes"), params=params)
return json_to_py(response)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
{
"EmailAddress": "asdf@softbouncemyemail.comX",
"BounceType": "Soft",
"Date": "2019-08-14 14:24:00",
"Date": "2019-08-20 14:24:00",
"Reason": "Soft Bounce - Dns Failure"
},
{
"EmailAddress": "asdf@hardbouncemyemail.com",
"BounceType": "Hard",
"Date": "2019-08-15 04:26:00",
"Date": "2019-08-21 04:26:00",
"Reason": "Hard Bounce"
}
],
Expand Down
23 changes: 23 additions & 0 deletions test/fixtures/journey_email_bounces_with_params.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"Results": [
{
"EmailAddress": "asdf@hardbouncemyemail.com",
"BounceType": "Hard",
"Date": "2019-08-21 04:26:00",
"Reason": "Hard Bounce"
},
{
"EmailAddress": "asdf@softbouncemyemail.comX",
"BounceType": "Soft",
"Date": "2019-08-20 14:24:00",
"Reason": "Soft Bounce - Dns Failure"
}
],
"ResultsOrderedBy": "Date",
"OrderDirection": "DESC",
"PageNumber": 1,
"PageSize": 10,
"RecordsOnThisPage": 2,
"TotalNumberOfRecords": 2,
"NumberOfPages": 1
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
},
{
"EmailAddress": "asdf+2@example.com",
"Date": "2019-08-19 10:23:00",
"Date": "2019-08-19 10:24:00",
"URL": "https://example.com",
"IPAddress": "198.148.196.144",
"Latitude": -33.8591,
Expand Down
35 changes: 35 additions & 0 deletions test/fixtures/journey_email_clicks_with_params.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
{
"Results": [
{
"EmailAddress": "asdf+2@example.com",
"Date": "2019-08-19 10:24:00",
"URL": "https://example.com",
"IPAddress": "198.148.196.144",
"Latitude": -33.8591,
"Longitude": 151.200195,
"City": "Sydney",
"Region": "New South Wales",
"CountryCode": "AU",
"CountryName": "Australia"
},
{
"EmailAddress": "asdf@example.com",
"Date": "2019-08-19 10:23:00",
"URL": "http://mail.google.com/mail/?hl=en&tab=wm",
"IPAddress": "198.148.196.144",
"Latitude": -33.8591,
"Longitude": 151.200195,
"City": "Sydney",
"Region": "New South Wales",
"CountryCode": "AU",
"CountryName": "Australia"
}
],
"ResultsOrderedBy": "Date",
"OrderDirection": "DESC",
"PageNumber": 1,
"PageSize": 10,
"RecordsOnThisPage": 2,
"TotalNumberOfRecords": 2,
"NumberOfPages": 1
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
},
{
"EmailAddress": "asdf+2@example.com",
"Date": "2019-08-19 10:23:00",
"Date": "2019-08-19 10:24:00",
"IPAddress": "198.148.196.144",
"Latitude": -33.8591,
"Longitude": 151.200195,
Expand Down
33 changes: 33 additions & 0 deletions test/fixtures/journey_email_opens_with_params.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{
"Results": [
{
"EmailAddress": "asdf+2@example.com",
"Date": "2019-08-19 10:24:00",
"IPAddress": "198.148.196.144",
"Latitude": -33.8591,
"Longitude": 151.200195,
"City": "Sydney",
"Region": "New South Wales",
"CountryCode": "AU",
"CountryName": "Australia"
},
{
"EmailAddress": "asdf@example.com",
"Date": "2019-08-19 10:23:00",
"IPAddress": "198.148.196.144",
"Latitude": -33.8591,
"Longitude": 151.200195,
"City": "Sydney",
"Region": "New South Wales",
"CountryCode": "AU",
"CountryName": "Australia"
}
],
"ResultsOrderedBy": "Date",
"OrderDirection": "DESC",
"PageNumber": 1,
"PageSize": 10,
"RecordsOnThisPage": 2,
"TotalNumberOfRecords": 2,
"NumberOfPages": 1
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@
},
{
"EmailAddress": "asdf@softbouncemyemail.comX",
"SentDate": "2019-08-14 14:24:00"
"SentDate": "2019-08-20 14:24:00"
},
{
"EmailAddress": "asdf@hardbouncemyemail.com",
"SentDate": "2019-08-15 04:26:00"
"SentDate": "2019-08-21 04:26:00"
}
],
"ResultsOrderedBy": "SentDate",
Expand Down
27 changes: 27 additions & 0 deletions test/fixtures/journey_email_recipients_with_params.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"Results": [
{
"EmailAddress": "asdf@hardbouncemyemail.com",
"SentDate": "2019-08-21 04:26:00"
},
{
"EmailAddress": "asdf@softbouncemyemail.comX",
"SentDate": "2019-08-20 14:24:00"
},
{
"EmailAddress": "asdf+2@example.com",
"SentDate": "2019-08-19 10:23:00"
},
{
"EmailAddress": "asdf@example.com",
"SentDate": "2019-08-19 10:23:00"
}
],
"ResultsOrderedBy": "SentDate",
"OrderDirection": "DESC",
"PageNumber": 1,
"PageSize": 10,
"RecordsOnThisPage": 4,
"TotalNumberOfRecords": 4,
"NumberOfPages": 1
}
16 changes: 16 additions & 0 deletions test/fixtures/journey_email_unsubscribes_with_params.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"Results": [
{
"EmailAddress": "asdf@example.com",
"Date": "2019-08-19 10:24:00",
"IPAddress": "198.148.196.144"
}
],
"ResultsOrderedBy": "Date",
"OrderDirection": "DESC",
"PageNumber": 1,
"PageSize": 10,
"RecordsOnThisPage": 1,
"TotalNumberOfRecords": 1,
"NumberOfPages": 1
}
Loading

0 comments on commit f858c9d

Please sign in to comment.