Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 53b9442

Browse files
committed
Merge branch 'pdelboca-clean-lib-base'
2 parents 24e85e5 + 471eccb commit 53b9442

3 files changed

Lines changed: 28 additions & 66 deletions

File tree

ckan/lib/base.py

Lines changed: 4 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -5,28 +5,18 @@
55
Provides the BaseController class for subclassing.
66
"""
77
import logging
8-
import time
9-
import inspect
10-
import sys
118

129
from jinja2.exceptions import TemplateNotFound
1310

14-
import six
1511
from flask import (
1612
render_template as flask_render_template,
1713
abort as flask_abort
1814
)
1915

20-
import ckan.lib.i18n as i18n
2116
import ckan.lib.helpers as h
22-
import ckan.lib.app_globals as app_globals
2317
import ckan.plugins as p
24-
import ckan.model as model
25-
from ckan.views import (identify_user,
26-
set_cors_headers_for_response,
27-
check_session_cookie,
28-
)
29-
from ckan.common import (c, request, config,
18+
19+
from ckan.common import (request, config,
3020
session, asbool)
3121

3222

@@ -39,7 +29,7 @@
3929
def abort(status_code=None, detail='', headers=None, comment=None):
4030
'''Abort the current request immediately by returning an HTTP exception.
4131
42-
This is a wrapper for :py:func:`pylons.controllers.util.abort` that adds
32+
This is a wrapper for :py:func:`flask.abort` that adds
4333
some CKAN custom behavior, including allowing
4434
:py:class:`~ckan.plugins.interfaces.IAuthenticator` plugins to alter the
4535
abort response, and showing flash messages in the web interface.
@@ -93,13 +83,7 @@ def render_snippet(*template_names, **kw):
9383
raise last_exc or TemplateNotFound
9484

9585

96-
def render_jinja2(template_name, extra_vars):
97-
env = config['pylons.app_globals'].jinja_env
98-
template = env.get_template(template_name)
99-
return template.render(**extra_vars)
100-
101-
102-
def render(template_name, extra_vars=None, *pargs, **kwargs):
86+
def render(template_name, extra_vars=None):
10387
'''Render a template and return the output.
10488
10589
This is CKAN's main template rendering function.
@@ -108,19 +92,8 @@ def render(template_name, extra_vars=None, *pargs, **kwargs):
10892
:type template_name: str
10993
:params extra_vars: additional variables available in template
11094
:type extra_vars: dict
111-
:params pargs: DEPRECATED
112-
:type pargs: tuple
113-
:params kwargs: DEPRECATED
114-
:type kwargs: dict
11595
11696
'''
117-
if pargs or kwargs:
118-
tb = inspect.getframeinfo(sys._getframe(1))
119-
log.warning(
120-
'Extra arguments to `base.render` are deprecated: ' +
121-
'<{0.filename}:{0.lineno}>'.format(tb)
122-
)
123-
12497
if extra_vars is None:
12598
extra_vars = {}
12699

@@ -164,7 +137,3 @@ def _is_valid_session_cookie_data():
164137
break
165138

166139
return is_valid_cookie_data
167-
168-
169-
class ValidationException(Exception):
170-
pass

ckanext/example_theme_docs/custom_emails/tests.py renamed to ckanext/example_theme_docs/custom_emails/test_custom_emails.py

Lines changed: 21 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,21 @@
11
# encoding: utf-8
22

33
import os
4+
import pytest
5+
46

5-
from ckan import plugins
67
import ckan.model as model
78
import ckan.lib.mailer as mailer
89
from ckan.tests import factories
9-
from ckan.lib.base import render_jinja2
10+
from ckan.lib.base import render
1011
from ckan.common import config
1112

1213
from 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")
1518
class 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

ckanext/resourceproxy/blueprint.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from six.moves.urllib.parse import urlsplit
77
from flask import Blueprint, make_response
88

9-
import ckan.lib.base as base
9+
import ckan.model as model
1010
import ckan.logic as logic
1111
from ckan.common import config, _
1212
from ckan.plugins.toolkit import (asint, abort, get_action, c)
@@ -100,8 +100,8 @@ def proxy_resource(context, data_dict):
100100
def proxy_view(id, resource_id):
101101
data_dict = {u'resource_id': resource_id}
102102
context = {
103-
u'model': base.model,
104-
u'session': base.model.Session,
103+
u'model': model,
104+
u'session': model.Session,
105105
u'user': c.user
106106
}
107107
return proxy_resource(context, data_dict)

0 commit comments

Comments
 (0)