我有一个python测试,我想测试日志记录是否正常工作.例如,我有一个创建用户的函数,最后日志记录将响应写入日志文件.
logger = logging.getLogger('mylogger')
logger.setLevel(logging.DEBUG)
handler = logging.handlers.WatchedFileHandler('mylogfile.log')
formatter = logging.Formatter('%(asctime)s: %(message)s',
'%d/%b/%Y:%H:%M:%S %z')
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.info('Some log text')
Run Code Online (Sandbox Code Playgroud)
在我的测试用例中,我想将日志输出发送到StringIO.
class MyTest(unittest.TestCase):
def setUp(self):
stream = StringIO()
self.handler = logging.StreamHandler(stream)
log = logging.getLogger('mylogger')
log.removeHandler(log.handlers[0])
log.addHandler(self.handler)
def tearDown(self):
log = logging.getLogger('mylogger')
log.removeHandler(self.handler)
self.handler.close()
Run Code Online (Sandbox Code Playgroud)
问题是,我不确定我应该如何测试我的记录器是否正常工作.
我有一个脚本,可以创建一个图像并将其裁剪掉.问题是,在我调用crop()方法后,它不会保存在磁盘上
crop = image.crop(x_offset, Y_offset, width, height).load()
return crop.save(image_path, format)
Run Code Online (Sandbox Code Playgroud) 我想从以下回购https://github.com/geomin/django-countria安装软件包。我正在使用的命令是pip install git://github.com/geomin/django-countria.git。Pip将存储库克隆到一个临时文件夹,然后运行setup.py。问题是安装完成后,site_packages包含文件countria-0.8-py2.7.egg/countria/models.py,countria-0.8-py2.7.egg/countria/__init__.py但不包含fixtures和locale文件夹。如果我克隆程序包并运行,setup.py我将得到相同的行为。
假设我有一个包含多个标签的博客条目.标签字段是我模型中的ManyToMany.我想要获取所有博客条目,并且我希望获得所有标签的每个条目.
基本上我会做那样的事情
entries = Entries.objects.get(author=user)
for entry in entries:
tags[entry.pk] = entry.tags.all()
问题是我得到MultipleObjectsReturned错误.
假设我的configure.zcml文件中有以下代码.我希望我的课程也可以用于另一个界面,让我们说吧Interface2
<browser:page
for="Interface1"
class="plone.app.content.browser.reviewlist.FullReviewListView"
name="full_review_list"
template="document_full_review_list.pt"
permission="cmf.ReviewPortalContent" />
Run Code Online (Sandbox Code Playgroud)
如何在我的zcml文件中声明这个?
这么久我尝试了下面的内容:
<browser:page
for="Interface1 Interface2"
class="plone.app.content.browser.reviewlist.FullReviewListView"
name="full_review_list"
template="document_full_review_list.pt"
permission="cmf.ReviewPortalContent" />
Run Code Online (Sandbox Code Playgroud)
和
<browser:page
for="Interface1"
allowed_interface="Interface2"
class="plone.app.content.browser.reviewlist.FullReviewListView"
name="full_review_list"
template="document_full_review_list.pt"
permission="cmf.ReviewPortalContent" />
Run Code Online (Sandbox Code Playgroud)