Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 类型错误:类型str不';t在testcase中不支持assertTrue中的缓冲区API_Python 3.x_Testcase_Django 1.8 - Fatal编程技术网

Python 3.x 类型错误:类型str不';t在testcase中不支持assertTrue中的缓冲区API

Python 3.x 类型错误:类型str不';t在testcase中不支持assertTrue中的缓冲区API,python-3.x,testcase,django-1.8,Python 3.x,Testcase,Django 1.8,我使用的是python 3.4和Django 1.8.2 我正在使用一些断言执行一些关于艺术家对象的测试用例: 我希望页面在我的/artist/测试中返回我(存储在res变量中),并返回200状态码,这在http协议中是正常的 此外,我希望在内容中签入带有艺术家姓名的单词 from django.test import TestCase from .models import Artists class TestArtist(TestCase): def setUp(self):

我使用的是python 3.4和Django 1.8.2

我正在使用一些断言执行一些关于艺术家对象的测试用例:

我希望页面在我的
/artist/
测试中返回我(存储在res变量中),并返回200状态码,这在http协议中是正常的

此外,我希望在内容中签入带有艺术家姓名的单词

from django.test import TestCase
from .models import Artists

class TestArtist(TestCase):
    def setUp(self):
        self.artist = Artists.objects.create(first_name = 'Ricky', 
        last_name ='Martin')

    def test_existe_vista(self):
        #print (self.client.get('/artists/%d' % self.artist.id))
        res = self.client.get('/artists/%d' % self.artist.id)
        self.assertEqual(res.status_code, 200)
        self.assertTrue('Ricky' in res.content)
输出为:

(venv)➜  myproject  ./manage.py test artists
Creating test database for alias 'default'...
/home/bgarcial/.virtualenvs/venv/lib/python3.4/site-packages/django/db/backends/sqlite3/base.py:57: RuntimeWarning: SQLite received a naive datetime (2015-07-08 05:09:23.051431) while time zone support is active.
  RuntimeWarning)

E
======================================================================
ERROR: test_existe_vista (artists.tests.TestArtist)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/bgarcial/workspace/Project/myprojec/artists/tests.py", line 43, in test_existe_vista
    self.assertTrue('Ricky' in res.content)
TypeError: Type str doesn't support the buffer API

----------------------------------------------------------------------
Ran 1 test in 0.286s

FAILED (errors=1)
Destroying test database for alias 'default'...
/home/bgarcial/.virtualenvs/venv/lib/python3.4/site-packages/django/db/backends/sqlite3/base.py:57: RuntimeWarning: SQLite received a naive datetime (2015-07-08 05:09:23.236391) while time zone support is active.
  RuntimeWarning)

(venv)➜  project  
什么意思
TypeError:Type str不支持我的assertTrue断言中的缓冲区API

关于主题,我还想说明,当我执行打印艺术家对象的第一个测试或第一行(在断言之前)时,该对象的打印方式如下:

如何打印可供人类阅读的对象

str方法在测试用例中不适合我,就像在我的admin.py文件中一样

关于SQLite警告,我想我应该探究:)
谢谢你在这里经历了同样的事情。尝试执行
self.assertTrue('Ricky'在str(res.content))