make image_url a function instead of a property

parent 52c33107
...@@ -112,7 +112,7 @@ def _get_google_analytics_tracking_url(context): ...@@ -112,7 +112,7 @@ def _get_google_analytics_tracking_url(context):
if course_ids is not None and len(course_ids) > 0: if course_ids is not None and len(course_ids) > 0:
pixel.course_id = course_ids[0] pixel.course_id = course_ids[0]
return pixel.image_url return pixel.generate_image_url()
def modify_url_to_track_clicks(url, campaign=None): def modify_url_to_track_clicks(url, campaign=None):
......
...@@ -72,9 +72,9 @@ class TestGoogleAnalyticsTrackingPixel(QueryStringAssertionMixin, CacheIsolation ...@@ -72,9 +72,9 @@ class TestGoogleAnalyticsTrackingPixel(QueryStringAssertionMixin, CacheIsolation
@override_settings(GOOGLE_ANALYTICS_TRACKING_ID='UA-123456-1') @override_settings(GOOGLE_ANALYTICS_TRACKING_ID='UA-123456-1')
def test_default_parameters(self): def test_default_parameters(self):
pixel = GoogleAnalyticsTrackingPixel() pixel = GoogleAnalyticsTrackingPixel()
self.assertIsNotNone(pixel.image_url) self.assertIsNotNone(pixel.generate_image_url())
self.assert_url_components_equal( self.assert_url_components_equal(
pixel.image_url, pixel.generate_image_url(),
scheme='https', scheme='https',
netloc='www.google-analytics.com', netloc='www.google-analytics.com',
path='/collect', path='/collect',
...@@ -100,9 +100,9 @@ class TestGoogleAnalyticsTrackingPixel(QueryStringAssertionMixin, CacheIsolation ...@@ -100,9 +100,9 @@ class TestGoogleAnalyticsTrackingPixel(QueryStringAssertionMixin, CacheIsolation
document_path='test_dp', document_path='test_dp',
client_id='123456.123456', client_id='123456.123456',
) )
self.assertIsNotNone(pixel.image_url) self.assertIsNotNone(pixel.generate_image_url())
self.assert_url_components_equal( self.assert_url_components_equal(
pixel.image_url, pixel.generate_image_url(),
scheme='https', scheme='https',
netloc='www.google-analytics.com', netloc='www.google-analytics.com',
path='/collect', path='/collect',
...@@ -112,7 +112,7 @@ class TestGoogleAnalyticsTrackingPixel(QueryStringAssertionMixin, CacheIsolation ...@@ -112,7 +112,7 @@ class TestGoogleAnalyticsTrackingPixel(QueryStringAssertionMixin, CacheIsolation
def test_missing_settings(self): def test_missing_settings(self):
pixel = GoogleAnalyticsTrackingPixel() pixel = GoogleAnalyticsTrackingPixel()
self.assertIsNone(pixel.image_url) self.assertIsNone(pixel.generate_image_url())
@override_settings(GOOGLE_ANALYTICS_TRACKING_ID='UA-123456-1') @override_settings(GOOGLE_ANALYTICS_TRACKING_ID='UA-123456-1')
def test_site_config_override(self): def test_site_config_override(self):
...@@ -122,7 +122,7 @@ class TestGoogleAnalyticsTrackingPixel(QueryStringAssertionMixin, CacheIsolation ...@@ -122,7 +122,7 @@ class TestGoogleAnalyticsTrackingPixel(QueryStringAssertionMixin, CacheIsolation
) )
) )
pixel = GoogleAnalyticsTrackingPixel(site=site_config.site) pixel = GoogleAnalyticsTrackingPixel(site=site_config.site)
self.assert_query_string_parameters_equal(pixel.image_url, tid='UA-654321-1') self.assert_query_string_parameters_equal(pixel.generate_image_url(), tid='UA-654321-1')
@override_settings( @override_settings(
GOOGLE_ANALYTICS_TRACKING_ID='UA-123456-1', GOOGLE_ANALYTICS_TRACKING_ID='UA-123456-1',
...@@ -130,9 +130,9 @@ class TestGoogleAnalyticsTrackingPixel(QueryStringAssertionMixin, CacheIsolation ...@@ -130,9 +130,9 @@ class TestGoogleAnalyticsTrackingPixel(QueryStringAssertionMixin, CacheIsolation
) )
def test_custom_dimension(self): def test_custom_dimension(self):
pixel = GoogleAnalyticsTrackingPixel(user_id=10, campaign_source=None, campaign_medium=None) pixel = GoogleAnalyticsTrackingPixel(user_id=10, campaign_source=None, campaign_medium=None)
self.assertIsNotNone(pixel.image_url) self.assertIsNotNone(pixel.generate_image_url())
self.assert_url_components_equal( self.assert_url_components_equal(
pixel.image_url, pixel.generate_image_url(),
query='v=1&t=event&ec=email&ea=edx.bi.email.opened&cid={cid}&tid=UA-123456-1&cd40=10&uid=10'.format( query='v=1&t=event&ec=email&ea=edx.bi.email.opened&cid={cid}&tid=UA-123456-1&cd40=10&uid=10'.format(
cid=GoogleAnalyticsTrackingPixel.ANONYMOUS_USER_CLIENT_ID, cid=GoogleAnalyticsTrackingPixel.ANONYMOUS_USER_CLIENT_ID,
) )
...@@ -144,9 +144,9 @@ class TestGoogleAnalyticsTrackingPixel(QueryStringAssertionMixin, CacheIsolation ...@@ -144,9 +144,9 @@ class TestGoogleAnalyticsTrackingPixel(QueryStringAssertionMixin, CacheIsolation
) )
def test_custom_dimension_without_user_id(self): def test_custom_dimension_without_user_id(self):
pixel = GoogleAnalyticsTrackingPixel(campaign_source=None, campaign_medium=None) pixel = GoogleAnalyticsTrackingPixel(campaign_source=None, campaign_medium=None)
self.assertIsNotNone(pixel.image_url) self.assertIsNotNone(pixel.generate_image_url())
self.assert_url_components_equal( self.assert_url_components_equal(
pixel.image_url, pixel.generate_image_url(),
query='v=1&t=event&ec=email&ea=edx.bi.email.opened&cid={cid}&tid=UA-123456-1'.format( query='v=1&t=event&ec=email&ea=edx.bi.email.opened&cid={cid}&tid=UA-123456-1'.format(
cid=GoogleAnalyticsTrackingPixel.ANONYMOUS_USER_CLIENT_ID, cid=GoogleAnalyticsTrackingPixel.ANONYMOUS_USER_CLIENT_ID,
) )
...@@ -156,11 +156,11 @@ class TestGoogleAnalyticsTrackingPixel(QueryStringAssertionMixin, CacheIsolation ...@@ -156,11 +156,11 @@ class TestGoogleAnalyticsTrackingPixel(QueryStringAssertionMixin, CacheIsolation
def test_course_id(self): def test_course_id(self):
course_id = 'foo/bar/baz' course_id = 'foo/bar/baz'
pixel = GoogleAnalyticsTrackingPixel(course_id=course_id) pixel = GoogleAnalyticsTrackingPixel(course_id=course_id)
self.assertIsNotNone(pixel.image_url) self.assertIsNotNone(pixel.generate_image_url())
self.assert_query_string_parameters_equal(pixel.image_url, el=course_id) self.assert_query_string_parameters_equal(pixel.generate_image_url(), el=course_id)
@override_settings(GOOGLE_ANALYTICS_TRACKING_ID='UA-123456-1') @override_settings(GOOGLE_ANALYTICS_TRACKING_ID='UA-123456-1')
def test_course_id_with_event_label(self): def test_course_id_with_event_label(self):
pixel = GoogleAnalyticsTrackingPixel(course_id='foo/bar/baz', event_label='test_label') pixel = GoogleAnalyticsTrackingPixel(course_id='foo/bar/baz', event_label='test_label')
self.assertIsNotNone(pixel.image_url) self.assertIsNotNone(pixel.generate_image_url())
self.assert_query_string_parameters_equal(pixel.image_url, el='test_label') self.assert_query_string_parameters_equal(pixel.generate_image_url(), el='test_label')
...@@ -73,8 +73,7 @@ class GoogleAnalyticsTrackingPixel(object): ...@@ -73,8 +73,7 @@ class GoogleAnalyticsTrackingPixel(object):
user_id = attr.ib(default=None, metadata={'param_name': 'uid'}) user_id = attr.ib(default=None, metadata={'param_name': 'uid'})
client_id = attr.ib(default=ANONYMOUS_USER_CLIENT_ID, metadata={'param_name': 'cid'}) client_id = attr.ib(default=ANONYMOUS_USER_CLIENT_ID, metadata={'param_name': 'cid'})
@property def generate_image_url(self):
def image_url(self):
""" """
A URL to a clear image that can be embedded in HTML documents to track email open events. A URL to a clear image that can be embedded in HTML documents to track email open events.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment