11# encoding: utf-8
22
33import os
4+ import pytest
5+
46
5- from ckan import plugins
67import ckan .model as model
78import ckan .lib .mailer as mailer
89from ckan .tests import factories
9- from ckan .lib .base import render_jinja2
10+ from ckan .lib .base import render
1011from ckan .common import config
1112
1213from ckan .tests .lib .test_mailer import MailerBase
1314
1415
16+ @pytest .mark .usefixtures ("with_request_context" , "clean_db" , "with_plugins" )
17+ @pytest .mark .ckan_config ("ckan.plugins" , "example_theme_custom_emails" )
1518class TestExampleCustomEmailsPlugin (MailerBase ):
16- @classmethod
17- def setup_class (cls ):
18- super (TestExampleCustomEmailsPlugin , cls ).setup_class ()
19- if not plugins .plugin_loaded ("example_theme_custom_emails" ):
20- plugins .load ("example_theme_custom_emails" )
21-
22- @classmethod
23- def teardown_class (cls ):
24- super (TestExampleCustomEmailsPlugin , cls ).teardown_class ()
25- plugins .unload ("example_theme_custom_emails" )
2619
2720 def _get_template_content (self , name ):
2821
@@ -32,78 +25,78 @@ def _get_template_content(self, name):
3225 with open (os .path .join (templates_path , name ), "r" ) as f :
3326 return f .read ()
3427
35- def test_reset_password_custom_subject (self ):
28+ def test_reset_password_custom_subject (self , mail_server ):
3629 user = factories .User ()
3730 user_obj = model .User .by_name (user ["name" ])
3831
3932 mailer .send_reset_link (user_obj )
4033
4134 # check it went to the mock smtp server
42- msgs = self .get_smtp_messages ()
35+ msgs = mail_server .get_smtp_messages ()
4336 assert len (msgs ) == 1
4437 msg = msgs [0 ]
4538 extra_vars = {"site_title" : config .get ("ckan.site_title" )}
46- expected = render_jinja2 (
39+ expected = render (
4740 "emails/reset_password_subject.txt" , extra_vars
4841 )
4942 expected = expected .split ("\n " )[0 ]
5043
51- subject = self .get_email_subject (msg [3 ])
44+ subject = self .get_email_subject (msg [3 ]). decode ()
5245 assert expected == subject
5346 assert "**test**" in subject
5447
55- def test_reset_password_custom_body (self ):
48+ def test_reset_password_custom_body (self , mail_server ):
5649 user = factories .User ()
5750 user_obj = model .User .by_name (user ["name" ])
5851
5952 mailer .send_reset_link (user_obj )
6053
6154 # check it went to the mock smtp server
62- msgs = self .get_smtp_messages ()
55+ msgs = mail_server .get_smtp_messages ()
6356 assert len (msgs ) == 1
6457 msg = msgs [0 ]
6558 extra_vars = {"reset_link" : mailer .get_reset_link (user_obj )}
66- expected = render_jinja2 ("emails/reset_password.txt" , extra_vars )
67- body = self .get_email_body (msg [3 ])
59+ expected = render ("emails/reset_password.txt" , extra_vars )
60+ body = self .get_email_body (msg [3 ]). decode ()
6861 assert expected == body
6962 assert "**test**" in body
7063
71- def test_invite_user_custom_subject (self ):
64+ def test_invite_user_custom_subject (self , mail_server ):
7265 user = factories .User ()
7366 user_obj = model .User .by_name (user ["name" ])
7467
7568 mailer .send_invite (user_obj )
7669
7770 # check it went to the mock smtp server
78- msgs = self .get_smtp_messages ()
71+ msgs = mail_server .get_smtp_messages ()
7972 assert len (msgs ) == 1
8073 msg = msgs [0 ]
8174 extra_vars = {
8275 "site_title" : config .get ("ckan.site_title" ),
8376 }
84- expected = render_jinja2 ("emails/invite_user_subject.txt" , extra_vars )
77+ expected = render ("emails/invite_user_subject.txt" , extra_vars )
8578 expected = expected .split ("\n " )[0 ]
8679
87- subject = self .get_email_subject (msg [3 ])
80+ subject = self .get_email_subject (msg [3 ]). decode ()
8881 assert expected == subject
8982 assert "**test**" in subject
9083
91- def test_invite_user_custom_body (self ):
84+ def test_invite_user_custom_body (self , mail_server ):
9285 user = factories .User ()
9386 user_obj = model .User .by_name (user ["name" ])
9487
9588 mailer .send_invite (user_obj )
9689
9790 # check it went to the mock smtp server
98- msgs = self .get_smtp_messages ()
91+ msgs = mail_server .get_smtp_messages ()
9992 assert len (msgs ) == 1
10093 msg = msgs [0 ]
10194 extra_vars = {
10295 "reset_link" : mailer .get_reset_link (user_obj ),
10396 "user_name" : user ["name" ],
10497 "site_title" : config .get ("ckan.site_title" ),
10598 }
106- expected = render_jinja2 ("emails/invite_user.txt" , extra_vars )
107- body = self .get_email_body (msg [3 ])
99+ expected = render ("emails/invite_user.txt" , extra_vars )
100+ body = self .get_email_body (msg [3 ]). decode ()
108101 assert expected == body
109102 assert "**test**" in body
0 commit comments