Переглянути джерело

More Python 3 compatibility Frappe test fixes (#4321)

* stream object should be BytesIO instead of StringIO

* Convert filter to list explicitly before checking length

* Decode sent_email and content before string operations
version-14
Aditya Hase 7 роки тому
committed by Rushabh Mehta
джерело
коміт
d5d9fd5283
4 змінених файлів з 14 додано та 14 видалено
  1. +4
    -4
      frappe/desk/doctype/event/test_event.py
  2. +1
    -1
      frappe/email/doctype/email_account/test_email_account.py
  3. +5
    -5
      frappe/tests/test_email.py
  4. +4
    -4
      frappe/twofactor.py

+ 4
- 4
frappe/desk/doctype/event/test_event.py Переглянути файл

@@ -117,13 +117,13 @@ class TestEvent(unittest.TestCase):
ev.insert()

ev_list = get_events("2014-02-01", "2014-02-01", "Administrator", for_reminder=True)
self.assertTrue(filter(lambda e: e.name==ev.name, ev_list))
self.assertTrue(list(filter(lambda e: e.name==ev.name, ev_list)))

ev_list1 = get_events("2015-01-20", "2015-01-20", "Administrator", for_reminder=True)
self.assertFalse(filter(lambda e: e.name==ev.name, ev_list1))
self.assertFalse(list(filter(lambda e: e.name==ev.name, ev_list1)))

ev_list2 = get_events("2014-02-20", "2014-02-20", "Administrator", for_reminder=True)
self.assertFalse(filter(lambda e: e.name==ev.name, ev_list2))
self.assertFalse(list(filter(lambda e: e.name==ev.name, ev_list2)))

ev_list3 = get_events("2015-02-01", "2015-02-01", "Administrator", for_reminder=True)
self.assertTrue(filter(lambda e: e.name==ev.name, ev_list3))
self.assertTrue(list(filter(lambda e: e.name==ev.name, ev_list3)))

+ 1
- 1
frappe/email/doctype/email_account/test_email_account.py Переглянути файл

@@ -111,7 +111,7 @@ class TestEmailAccount(unittest.TestCase):
frappe.sendmail(sender="test_sender@example.com", recipients="test_recipient@example.com",
content="test mail 001", subject="test-mail-001", delayed=False)

sent_mail = email.message_from_string(frappe.flags.sent_mail)
sent_mail = email.message_from_string(frappe.flags.sent_mail.decode())
self.assertTrue("test-mail-001" in sent_mail.get("Subject"))

def test_print_format(self):


+ 5
- 5
frappe/tests/test_email.py Переглянути файл

@@ -49,7 +49,7 @@ class TestEmail(unittest.TestCase):
self.assertTrue('test@example.com' in queue_recipients)
self.assertTrue('test1@example.com' in queue_recipients)
self.assertEquals(len(queue_recipients), 2)
self.assertTrue('Unsubscribe' in frappe.flags.sent_mail)
self.assertTrue('Unsubscribe' in frappe.flags.sent_mail.decode())

def test_cc_header(self):
#test if sending with cc's makes it into header
@@ -84,7 +84,7 @@ class TestEmail(unittest.TestCase):
self.assertTrue('test@example.com' in queue_recipients)
self.assertTrue('test1@example.com' in queue_recipients)

self.assertTrue('This email was sent to test@example.com and copied to test1@example.com' in frappe.flags.sent_mail)
self.assertTrue('This email was sent to test@example.com and copied to test1@example.com' in frappe.flags.sent_mail.decode())

def test_expose(self):
from frappe.utils.verified_command import verify_request
@@ -104,12 +104,12 @@ class TestEmail(unittest.TestCase):
where status='Sent'""", as_dict=1)[0].message
self.assertTrue('<!--recipient-->' in message)

email_obj = email.message_from_string(frappe.flags.sent_mail)
email_obj = email.message_from_string(frappe.flags.sent_mail.decode())
for part in email_obj.walk():
content = part.get_payload(decode=True)

if content:
frappe.local.flags.signed_query_string = re.search('(?<=/api/method/frappe.email.queue.unsubscribe\?).*(?=\n)', content).group(0)
frappe.local.flags.signed_query_string = re.search('(?<=/api/method/frappe.email.queue.unsubscribe\?).*(?=\n)', content.decode()).group(0)
self.assertTrue(verify_request())
break

@@ -150,7 +150,7 @@ class TestEmail(unittest.TestCase):
self.assertFalse('test@example.com' in queue_recipients)
self.assertTrue('test1@example.com' in queue_recipients)
self.assertEquals(len(queue_recipients), 1)
self.assertTrue('Unsubscribe' in frappe.flags.sent_mail)
self.assertTrue('Unsubscribe' in frappe.flags.sent_mail.decode())

def test_email_queue_limit(self):
from frappe.email.queue import send, EmailLimitCrossedError


+ 4
- 4
frappe/twofactor.py Переглянути файл

@@ -9,7 +9,7 @@ import pyotp, os
from frappe.utils.background_jobs import enqueue
from jinja2 import Template
from pyqrcode import create as qrcreate
from six import StringIO
from six import BytesIO
from base64 import b64encode, b32encode
from frappe.utils import get_url, get_datetime, time_diff_in_seconds
from six import iteritems, string_types
@@ -318,11 +318,11 @@ def get_qr_svg_code(totp_uri):
'''Get SVG code to display Qrcode for OTP.'''
url = qrcreate(totp_uri)
svg = ''
stream = StringIO()
stream = BytesIO()
try:
url.svg(stream, scale=4, background="#eee", module_color="#222")
svg = stream.getvalue().replace('\n', '')
svg = b64encode(bytes(svg))
svg = stream.getvalue().decode().replace('\n', '')
svg = b64encode(svg.encode())
finally:
stream.close()
return svg


Завантаження…
Відмінити
Зберегти