|
2 | 2 | Tests for the Woopra template tags and filters. |
3 | 3 | """ |
4 | 4 |
|
| 5 | +from datetime import datetime |
| 6 | + |
5 | 7 | import pytest |
6 | 8 | from django.contrib.auth.models import AnonymousUser, User |
7 | 9 | from django.http import HttpRequest |
@@ -41,8 +43,97 @@ def test_wrong_domain(self): |
41 | 43 | def test_idle_timeout(self): |
42 | 44 | r = WoopraNode().render(Context({})) |
43 | 45 | assert ( |
44 | | - 'var woo_settings = {"domain": "example.com", "idle_timeout": "1234"};' in r |
45 | | - ) |
| 46 | + 'var woo_settings = {"domain": "example.com", "idle_timeout": 1234};' |
| 47 | + ) in r |
| 48 | + |
| 49 | + @override_settings(WOOPRA_COOKIE_NAME='foo') |
| 50 | + def test_cookie_name(self): |
| 51 | + r = WoopraNode().render(Context({})) |
| 52 | + assert ( |
| 53 | + 'var woo_settings = {"cookie_name": "foo", "domain": "example.com"};' |
| 54 | + ) in r |
| 55 | + |
| 56 | + @override_settings(WOOPRA_COOKIE_DOMAIN='.example.com') |
| 57 | + def test_cookie_domain(self): |
| 58 | + r = WoopraNode().render(Context({})) |
| 59 | + assert ( |
| 60 | + 'var woo_settings = {"cookie_domain": ".example.com",' |
| 61 | + ' "domain": "example.com"};' |
| 62 | + ) in r |
| 63 | + |
| 64 | + @override_settings(WOOPRA_COOKIE_PATH='/foo/cookie/path') |
| 65 | + def test_cookie_path(self): |
| 66 | + r = WoopraNode().render(Context({})) |
| 67 | + assert ( |
| 68 | + 'var woo_settings = {"cookie_path": "/foo/cookie/path",' |
| 69 | + ' "domain": "example.com"};' |
| 70 | + ) in r |
| 71 | + |
| 72 | + @override_settings(WOOPRA_COOKIE_EXPIRE='Fri Jan 01 2027 15:00:00 GMT+0000') |
| 73 | + def test_cookie_expire(self): |
| 74 | + r = WoopraNode().render(Context({})) |
| 75 | + assert ( |
| 76 | + 'var woo_settings = {"cookie_expire":' |
| 77 | + ' "Fri Jan 01 2027 15:00:00 GMT+0000", "domain": "example.com"};' |
| 78 | + ) in r |
| 79 | + |
| 80 | + @override_settings(WOOPRA_CLICK_TRACKING=True) |
| 81 | + def test_click_tracking(self): |
| 82 | + r = WoopraNode().render(Context({})) |
| 83 | + assert ( |
| 84 | + 'var woo_settings = {"click_tracking": true, "domain": "example.com"};' |
| 85 | + ) in r |
| 86 | + |
| 87 | + @override_settings(WOOPRA_DOWNLOAD_TRACKING=True) |
| 88 | + def test_download_tracking(self): |
| 89 | + r = WoopraNode().render(Context({})) |
| 90 | + assert ( |
| 91 | + 'var woo_settings = {"domain": "example.com", "download_tracking": true};' |
| 92 | + ) in r |
| 93 | + |
| 94 | + @override_settings(WOOPRA_OUTGOING_TRACKING=True) |
| 95 | + def test_outgoing_tracking(self): |
| 96 | + r = WoopraNode().render(Context({})) |
| 97 | + assert ( |
| 98 | + 'var woo_settings = {"domain": "example.com", "outgoing_tracking": true};' |
| 99 | + ) in r |
| 100 | + |
| 101 | + @override_settings(WOOPRA_OUTGOING_IGNORE_SUBDOMAIN=False) |
| 102 | + def test_outgoing_ignore_subdomain(self): |
| 103 | + r = WoopraNode().render(Context({})) |
| 104 | + assert ( |
| 105 | + 'var woo_settings = {"domain": "example.com",' |
| 106 | + ' "outgoing_ignore_subdomain": false};' |
| 107 | + ) in r |
| 108 | + |
| 109 | + @override_settings(WOOPRA_IGNORE_QUERY_URL=False) |
| 110 | + def test_ignore_query_url(self): |
| 111 | + r = WoopraNode().render(Context({})) |
| 112 | + assert ( |
| 113 | + 'var woo_settings = {"domain": "example.com", "ignore_query_url": false};' |
| 114 | + ) in r |
| 115 | + |
| 116 | + @override_settings(WOOPRA_HIDE_CAMPAIGN=True) |
| 117 | + def test_hide_campaign(self): |
| 118 | + r = WoopraNode().render(Context({})) |
| 119 | + assert ( |
| 120 | + 'var woo_settings = {"domain": "example.com", "hide_campaign": true};' |
| 121 | + ) in r |
| 122 | + |
| 123 | + @override_settings(WOOPRA_IDLE_TIMEOUT='1234') |
| 124 | + def test_invalid_int_setting(self): |
| 125 | + with pytest.raises(AnalyticalException, match=r'must be an int'): |
| 126 | + WoopraNode().render(Context({})) |
| 127 | + |
| 128 | + @override_settings(WOOPRA_HIDE_CAMPAIGN='tomorrow') |
| 129 | + def test_invalid_bool_setting(self): |
| 130 | + with pytest.raises(AnalyticalException, match=r'must be a boolean'): |
| 131 | + WoopraNode().render(Context({})) |
| 132 | + |
| 133 | + @override_settings(WOOPRA_COOKIE_EXPIRE=datetime.now()) |
| 134 | + def test_invalid_str_setting(self): |
| 135 | + with pytest.raises(AnalyticalException, match=r'must be a string'): |
| 136 | + WoopraNode().render(Context({})) |
46 | 137 |
|
47 | 138 | def test_custom(self): |
48 | 139 | r = WoopraNode().render( |
|
0 commit comments