Skip to content

Commit ae3f213

Browse files
authored
Merge pull request #206 from kmichel-sereema/django-20-21-22-30
Add support for Django 2.0 to 3.0
2 parents a839d7f + 16a00d7 commit ae3f213

File tree

7 files changed

+34
-3
lines changed

7 files changed

+34
-3
lines changed

aws_xray_sdk/ext/django/templates.py

+5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import logging
22

33
from django.template import Template
4+
from django.utils.safestring import SafeString
45

56
from aws_xray_sdk.core import xray_recorder
67

@@ -22,6 +23,10 @@ def xray_render(self, context):
2223
template_name = self.name or getattr(context, 'template_name', None)
2324
if template_name:
2425
name = str(template_name)
26+
# SafeString are not properly serialized by jsonpickle,
27+
# turn them back to str by adding a non-safe str.
28+
if isinstance(name, SafeString):
29+
name += ''
2530
subsegment = xray_recorder.current_subsegment()
2631
if subsegment:
2732
subsegment.name = name

tests/ext/django/app/settings.py

-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@
4444
'django.middleware.common.CommonMiddleware',
4545
'django.middleware.csrf.CsrfViewMiddleware',
4646
'django.contrib.auth.middleware.AuthenticationMiddleware',
47-
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
4847
'django.contrib.messages.middleware.MessageMiddleware',
4948
'django.middleware.clickjacking.XFrameOptionsMiddleware',
5049
'django.middleware.security.SecurityMiddleware',
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<p>Hello World</p>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<body>
4+
5+
<h1>Django Test App</h1>
6+
7+
{% include "block.html" %}
8+
9+
</body>
10+
</html>

tests/ext/django/app/views.py

+5
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ class IndexView(TemplateView):
99
template_name = 'index.html'
1010

1111

12+
class TemplateBlockView(TemplateView):
13+
template_name = 'block_user.html'
14+
15+
1216
def ok(request):
1317
return HttpResponse(status=200)
1418

@@ -32,4 +36,5 @@ def call_db(request):
3236
url(r'^500fault/$', fault, name='500fault'),
3337
url(r'^call_db/$', call_db, name='call_db'),
3438
url(r'^template/$', IndexView.as_view(), name='template'),
39+
url(r'^template_block/$', TemplateBlockView.as_view(), name='template_block'),
3540
]

tests/ext/django/test_middleware.py

+12-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import django
22
from aws_xray_sdk import global_sdk_config
3-
from django.core.urlresolvers import reverse
3+
from django.urls import reverse
44
from django.test import TestCase
55

66
from aws_xray_sdk.core import xray_recorder, lambda_launcher
@@ -90,6 +90,17 @@ def test_template(self):
9090
assert not subsegment.in_progress
9191
assert subsegment.namespace == 'local'
9292

93+
def test_template_block(self):
94+
url = reverse('template_block')
95+
self.client.get(url)
96+
segment = xray_recorder.emitter.pop()
97+
assert len(segment.subsegments) == 1
98+
99+
subsegment = segment.subsegments[0]
100+
assert subsegment.name == 'block_user.html'
101+
assert not subsegment.in_progress
102+
assert subsegment.namespace == 'local'
103+
93104
def test_trace_header_data_perservation(self):
94105
url = reverse('200ok')
95106
self.client.get(url, HTTP_X_AMZN_TRACE_ID='k1=v1')

tox.ini

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ deps =
1919
Flask-SQLAlchemy
2020
future
2121
# the sdk doesn't support earlier version of django
22-
django >= 1.10, <2.0
22+
django >= 1.10
2323
django-fake-model
2424
pynamodb >= 3.3.1
2525
psycopg2

0 commit comments

Comments
 (0)