小编Vic*_*kov的帖子

在python中模拟文件对象或迭代

哪种方式适合模拟和测试使用模拟库从open()返回的对象的代码?

whitelist_data.py:

WHITELIST_FILE = "testdata.txt"

format_str = lambda s: s.rstrip().lstrip('www.')
whitelist = None

with open(WHITELIST_FILE) as whitelist_data:
    whitelist = set(format_str(line) for line in whitelist_data)

if not whitelist:
    raise RuntimeError("Can't read data from %s file" % WHITELIST_FILE)

def is_whitelisted(substr):
    return 1 if format_str(substr) in whitelist else 0
Run Code Online (Sandbox Code Playgroud)

这是我尝试测试它的方式.

import unittest
import mock 

TEST_DATA = """
domain1.com
domain2.com
domain3.com
"""

class TestCheckerFunctions(unittest.TestCase):

    def test_is_whitelisted_method(self):
        open_mock = mock.MagicMock()
        with mock.patch('__builtin__.open',open_mock):
            manager = open_mock.return_value.__enter__.return_value
            manager.__iter__ = lambda …
Run Code Online (Sandbox Code Playgroud)

python tdd mocking python-mock

13
推荐指数
1
解决办法
1万
查看次数

Django uwsgi导入错误

我有一个名为的应用程序的Django项目subscribe.在root中urls.py我使用include来自subscribeurls.py.

我把对INSTALLED_APPS subscribesubscribeurls.py我使用的subscribe.views.<name>产品,请致电我的看法.服务器在python manage.py runserver本地运行时一切正常.但是当服务器使用virtualenv在nginx + uwsgi上运行时,我已经得到了ImportError: No module named subscribe.当我改变subscribe,以project.subscribeINSTALLED_APPSsubscribeurls.py变化subscribe.views.<name>,以project.subscribe.views.<name>一切工作正常.

uwsgi配置:

[uwsgi] 
socket = 127.0.0.1:9003 
workers = 2 
master = true 
virtualenv = /home/user/python 
chdir = /home/user 
env = DJANGO_SETTINGS_MODULE=project.settings 
module = django.core.handlers.wsgi:WSGIHandler()
daemonize = /home/user/uwsgi.log
Run Code Online (Sandbox Code Playgroud)

为什么我应该使用绝对路径导入以及如何使用virtualenv将其更改为nginx + uwsgi上的相对位置?

django import nginx virtualenv uwsgi

7
推荐指数
1
解决办法
7997
查看次数

标签 统计

django ×1

import ×1

mocking ×1

nginx ×1

python ×1

python-mock ×1

tdd ×1

uwsgi ×1

virtualenv ×1