我想了解如何@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
.如何从我导入到测试命名空间的其他包中模拟方法?
我尝试从SQL文件导入数据库转储,并且在将字符串Mér
插入定义为的字段时插入失败varying(3)
.我没有捕获确切的错误,但它指出了具有约束的特定值varying(3)
.
鉴于我认为这对我当时正在做的事情不重要,我只是改变了价值Mer
,它运作了,我继续前进.
varying
考虑到字节字符串长度的字段是否有限制?令我难以置信的是,这是从另一个PostgreSQL数据库转储的.因此,约束如何允许最初写入值是没有意义的.
我正在从一个模块安装一个软件包(Nginx
在这种特定情况下),并希望包含一个来自模块外部的配置文件,即从顶级files
目录并行到顶级manifests
目录.我没有看到任何方式来源文件虽然没有包含在模块或我当前的Vagrant环境中引用绝对本地路径.
Puppet是否允许如文档中所述从模块外部获取文件?
你好 - 我写了一个非常简单的应用程序来接受工作申请,包括简历上传.
在本地运行捆绑服务器进行开发,我可以通过前端和管理界面上的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 ×1
django-forms ×1
file-upload ×1
postgresql ×1
puppet ×1
python ×1
python-mock ×1
unicode ×1
unit-testing ×1
vagrant ×1