Browse Source

ref(py3): Fix email debug tests (#20761)

Evan Purkhiser 4 years ago
parent
commit
0ff6c5fde6

+ 1 - 1
src/sentry/templates/sentry/emails/digests/body.html

@@ -13,7 +13,7 @@
   {% endwith %}
 </div>
 
-{% for rule, groups in digest.iteritems %}
+{% for rule, groups in digest.items %}
 
     <div class="rule">
       <div class="container">

+ 2 - 2
src/sentry/templates/sentry/emails/digests/body.txt

@@ -2,8 +2,8 @@
 {% load sentry_features %}Notifications for {{ project.slug }}
 {{ start|date:"N j, Y, P e" }} to {{ end|date:"N j, Y, P e" }}
 
-{% for rule, groups in digest.iteritems %}{{ rule.label }}
-{% for group, records in groups.iteritems %}
+{% for rule, groups in digest.items %}{{ rule.label }}
+{% for group, records in groups.items %}
 * {{ group.title }} ({{ group.event_count }} event{{ group.event_count|pluralize }}, {{ group.user_count }} user{{ group.user_count|pluralize }}){% url 'sentry-organization-issue' group.organization.slug group.id as group_link %}
   {% absolute_uri group_link %}?referrer=digest_email
 {% endfor %}

+ 11 - 11
src/sentry/templates/sentry/partial/interfaces/csp_email.html

@@ -1,14 +1,14 @@
 <h4 style="font-size:18px">{{ data.effective_directive }}</h4>
 <table>
-    <colgroup>
-      <col style="width:130px;">
-    </colgroup>
-    <tbody>
-        {% for key, value in data.iteritems %}
-        <tr>
-            <th>{{ key }}</th>
-            <td>{{ value|truncatechars:100 }}</td>
-        </tr>
-        {% endfor %}
-    </tbody>
+  <colgroup>
+    <col style="width:130px;" />
+  </colgroup>
+  <tbody>
+    {% for key, value in data.items %}
+    <tr>
+      <th>{{ key }}</th>
+      <td>{{ value|truncatechars:100 }}</td>
+    </tr>
+    {% endfor %}
+  </tbody>
 </table>

+ 1 - 1
src/sentry/templates/sentry/partial/interfaces/user_email.html

@@ -34,7 +34,7 @@
             </tr>
           {% endif %}
           {% if user_data %}
-            {% for key, value in user_data.iteritems %}
+            {% for key, value in user_data.items %}
               <tr>
                 <th>{{ key|titlize }}</th>
                 <td class="code">{{ value }}</td>

+ 5 - 2
src/sentry/web/frontend/debug/mail.py

@@ -93,7 +93,7 @@ def make_group_generator(random, project):
         last_seen = random.randint(first_seen, first_seen + (60 * 60 * 24 * 30))
 
         culprit = make_culprit(random)
-        level = random.choice(LOG_LEVELS.keys())
+        level = random.choice(list(LOG_LEVELS.keys()))
         message = make_message(random)
 
         group = Group(
@@ -356,7 +356,10 @@ def digest(request):
                 Record(
                     event.event_id,
                     Notification(
-                        event, random.sample(state["rules"], random.randint(1, len(state["rules"])))
+                        event,
+                        random.sample(
+                            list(state["rules"].keys()), random.randint(1, len(state["rules"]))
+                        ),
                     ),
                     to_timestamp(event.datetime),
                 )

+ 11 - 2
tests/acceptance/test_emails.py

@@ -1,5 +1,6 @@
 from __future__ import absolute_import
 
+import six
 import os.path
 
 from six.moves.urllib.parse import urlencode
@@ -36,9 +37,17 @@ EMAILS = (
 
 
 def read_txt_email_fixture(name):
+    # XXX(python3): We have different fixtures for python2 vs python3 tests
+    # because of the differences in how the random module works betwen 2 and 3.
+    # NOTE that we _cannot_ just set the version of the seed, as there are more
+    # differences. See [0].
+    #
+    # [0]: https://stackoverflow.com/questions/55647936/random-randint-shows-different-output-in-python-2-x-and-python-3-x-with-same-see/55648073
+    version_suffix = "_py2" if six.PY2 else ""
+
     # "sso unlinked without password"
     # => "sso_unlinked_without_password.txt"
-    filename = name.replace(" ", "_") + ".txt"
+    filename = name.replace(" ", "_") + version_suffix + ".txt"
     path = join(dirname(__file__), os.pardir, "fixtures", "emails", filename)
 
     fixture = None
@@ -54,7 +63,7 @@ class EmailTestCase(AcceptanceTestCase):
         self.login_as(self.user)
 
     def build_url(self, path, format="html"):
-        return u"{}?{}".format(path, urlencode({"format": format, "seed": "123"}))
+        return u"{}?{}".format(path, urlencode({"format": format, "seed": b"123"}))
 
     def test_emails(self):
         for url, name in EMAILS:

+ 1 - 1
tests/fixtures/emails/alert.txt

@@ -58,7 +58,7 @@ User
 Message
 -----------
 
-buck oriented molly violently broadly glorious ample namely
+goose smiling gobbler sterling feline
 
 
 

+ 66 - 0
tests/fixtures/emails/alert_py2.txt

@@ -0,0 +1,66 @@
+Details
+-------
+
+http://example.com/link
+
+
+Suspect Commits
+---------------
+
+* feat: Do something to raven/base.py
+  1b17483 - dcramer@gmail.com
+
+
+Tags
+----
+
+* browser = Chrome 28.0.1500
+* browser.name = Chrome
+* client_os = Windows 8
+* client_os.name = Windows
+* device = Other
+* environment = prod
+* level = error
+* logger = javascript
+* sentry:user = id:1
+* url = http://example.com/foo
+
+
+Stacktrace
+-----------
+
+Stacktrace (most recent call last):
+
+  File "raven/base.py", line 303, in build_msg
+    transformer=self.transform)
+  File "raven/base.py", line 459, in capture
+    **kwargs)
+  File "raven/base.py", line 577, in captureMessage
+    return self.capture('raven.events.Message', message=message, **kwargs)
+  File "raven/scripts/runner.py", line 77, in send_test_message
+    'loadavg': get_loadavg(),
+  File "raven/scripts/runner.py", line 112, in main
+    send_test_message(client, opts.__dict__)
+
+
+Request
+-----------
+
+
+
+
+User
+-----------
+
+
+
+
+Message
+-----------
+
+buck oriented molly violently broadly glorious ample namely
+
+
+
+
+Unsubscribe: javascript:alert("This is a preview page, what did you expect to happen?");

+ 1 - 1
tests/fixtures/emails/assigned.txt

@@ -5,7 +5,7 @@ foo@example.com assigned an issue to foo@example.com
 
 ## Issue Details
 
-buck oriented molly violently broadly glorious ample namely
+goose smiling gobbler sterling feline
 
 http://testserver/organizations/organization/issues/1/?referrer=AssignedActivityEmail
 

+ 13 - 0
tests/fixtures/emails/assigned_py2.txt

@@ -0,0 +1,13 @@
+# Assigned
+
+foo@example.com assigned an issue to foo@example.com
+
+
+## Issue Details
+
+buck oriented molly violently broadly glorious ample namely
+
+http://testserver/organizations/organization/issues/1/?referrer=AssignedActivityEmail
+
+
+Unsubscribe: javascript:alert("This is a preview page, what did you expect to happen?");

Some files were not shown because too many files changed in this diff