小编Ben*_*tin的帖子

Python从导入的模块中模拟一个函数

我想了解如何@patch从导入的模块中获取函数.

这是我到目前为止的地方.

应用程序/ mocking.py:

from app.my_module import get_user_name

def test_method():
  return get_user_name()

if __name__ == "__main__":
  print "Starting Program..."
  test_method()
Run Code Online (Sandbox Code Playgroud)

应用程序/ my_module/__ init__.py:

def get_user_name():
  return "Unmocked User"
Run Code Online (Sandbox Code Playgroud)

测试/ mock-test.py:

import unittest
from app.mocking import test_method 

def mock_get_user():
  return "Mocked This Silly"

@patch('app.my_module.get_user_name')
class MockingTestTestCase(unittest.TestCase):

  def test_mock_stubs(self, mock_method):
    mock_method.return_value = 'Mocked This Silly')
    ret = test_method()
    self.assertEqual(ret, 'Mocked This Silly')

if __name__ == '__main__':
  unittest.main()
Run Code Online (Sandbox Code Playgroud)

这并没有工作,我期望的那样."patched"模块只返回unmocked值get_user_name.如何从我导入到测试命名空间的其他包中模拟方法?

python unit-testing python-mock python-unittest

95
推荐指数
2
解决办法
5万
查看次数

Postgresql varchar是否使用unicode字符长度或ASCII字符长度?

我尝试从SQL文件导入数据库转储,并且在将字符串Mér插入定义为的字段时插入失败varying(3).我没有捕获确切的错误,但它指出了具有约束的特定值varying(3).

鉴于我认为这对我当时正在做的事情不重要,我只是改变了价值Mer,它运作了,我继续前进.

varying考虑到字节字符串长度的字段是否有限制?令我难以置信的是,这是从另一个PostgreSQL数据库转储的.因此,约束如何允许最初写入值是没有意义的.

postgresql unicode

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

从模块外部获取Puppet文件

我正在从一个模块安装一个软件包(Nginx在这种特定情况下),并希望包含一个来自模块外部的配置文件,即从顶级files目录并行到顶级manifests目录.我没有看到任何方式来源文件虽然没有包含在模块或我当前的Vagrant环境中引用绝对本地路径.

Puppet是否允许如文档中所述从模块外部获取文件?

puppet vagrant

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

文件不会从Django中的Web表单上传

你好 - 我写了一个非常简单的应用程序来接受工作申请,包括简历上传.

在本地运行捆绑服务器进行开发,我可以通过前端和管理界面上的Web表单成功上传文件.在远程服务器上运行它(带有mod_python的Apache)我可以通过管理界面成功上传文件,但尝试通过Web前端不会产生上传文件.

我添加FILE_UPLOAD_PERMISSIONS = 0644了设置,检查了两个设置文件,并查找了其他地方描述的类似问题.图我要么忘记了一个设置,要么需要以不同的方式解决这个问题.有什么建议?

供参考,包括代码.

该模型:

class Application(models.Model):
    job = models.ForeignKey('JobOpening')
    name = models.CharField(max_length=100)
    email = models.EmailField()
    date_applied = models.DateField()
    cover_letter = models.TextField()
    resume = models.FileField(upload_to='job_applications', blank=True)

    def __str__(self):
        return self.name

    def save(self):
        if not self.date_applied:
            self.date_applied = datetime.today
        super(Application, self).save()
Run Code Online (Sandbox Code Playgroud)

表格:

class JobApplicationForm(ModelForm):    
    class Meta:
        model = Application

    def save(self, commit=True, fail_silently=False):
        super(JobApplicationForm, self).save(commit)
Run Code Online (Sandbox Code Playgroud)

风景:

def job_application(request):
    ajax = request.GET.has_key('ajax')
    if request.method == 'POST':
        form = JobApplicationForm(request.POST, request.FILES)
        if form.is_valid():
            new_application = form.save()
            return …
Run Code Online (Sandbox Code Playgroud)

django file-upload django-forms

6
推荐指数
2
解决办法
6761
查看次数