小编bog*_*tan的帖子

Python记录到StringIO处理程序

我有一个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)

问题是,我不确定我应该如何测试我的记录器是否正常工作.

python logging unit-testing stringio

14
推荐指数
1
解决办法
9143
查看次数

Python PIL:如何保存裁剪的图像?

我有一个脚本,可以创建一个图像并将其裁剪掉.问题是,在我调用crop()方法后,它不会保存在磁盘上

crop = image.crop(x_offset, Y_offset, width, height).load()
return crop.save(image_path, format)
Run Code Online (Sandbox Code Playgroud)

python crop python-imaging-library

5
推荐指数
1
解决办法
9317
查看次数

从Git存储库安装Python软件包后,缺少一些文件夹

我想从以下回购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.pycountria-0.8-py2.7.egg/countria/__init__.py但不包含fixtureslocale文件夹。如果我克隆程序包并运行,setup.py我将得到相同的行为。

python pip setup.py

5
推荐指数
1
解决办法
3952
查看次数

Django MultipleObjectsReturned

假设我有一个包含多个标签的博客条目.标签字段是我模型中的ManyToMany.我想要获取所有博客条目,并且我希望获得所有标签的每个条目.

基本上我会做那样的事情

entries = Entries.objects.get(author=user)
for entry in entries:
     tags[entry.pk] = entry.tags.all()

问题是我得到MultipleObjectsReturned错误.

django many-to-many

3
推荐指数
1
解决办法
5544
查看次数

Zope3浏览器:页面多个接口

假设我的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)

zope interface zcml zope3

3
推荐指数
1
解决办法
364
查看次数