django.templateのコンテキストを使用すると、少し混乱します。django.templateを使用する際のトラブルunittestのコンテキスト
Pythonシェルで、次の作品:
>>> from django.template import Context, Template
>>> b=Template('TEST').render(Context())
>>> print b
TEST
私はユニットテストに非常に同じコードを使用すると、私はfollwingエラーを取得:
Traceback (most recent call last):
File "/newsletterapi/tests.py", line 25, in setUp
b = Template('TEST').render(Context())
File "/opt/python2.7/lib/python2.7/site-packages/django/template/base.py", line 121, in render
context.render_context.push()
AttributeError: 'Context' object has no attribute 'render_context'
ユニットテストは次のようになります。
from django.test import TestCase
from myproject.newsletterapi.models import Newsletter
from django.utils.termcolors import colorize
from django.db import IntegrityError
from django.template import Template, Context
import random
import datetime
from decimal import *
import string
class NewsletterTest(TestCase):
def setUp(self):
b = Template('TEST').render(Context()) # this is line 25
self.newsletter = Newsletter(body=b)
self.newsletter.save()
### ... continues here
これはシェルでは動作しますが、unittestでは動作しない理由を知っている人はいますか?私はすべてのヒントを感謝します。
from decimal import *
は "悪いもの" は、このLIBはあまりにContextオブジェクトを持っている:
最初の例はどのようなシェルで実行されますか?これは働く設定(DJANGO_SETTINGS_MODULE)が必要なので、あなたがあなたのユニットテストで欠けているものかもしれません。 –
シェルのプロジェクトディレクトリ内でこのコマンドを使用します: python2.7 manage.pyシェル – Jingo
ユニットテスト?あなたは同じ文脈でそれを実行する必要があります –