谁能告诉我为什么这不起作用?
>>> import mock
>>> @mock.patch('datetime.date.today')
... def today(cls):
... return date(2010, 1, 1)
...
>>> from datetime import date
>>> date.today()
datetime.date(2010, 12, 19)
Run Code Online (Sandbox Code Playgroud)
也许有人可以建议一个更好的方法?
我的模型中有一个DateTimeField字段.我想将它显示为Django管理站点中的复选框小部件.为此,我创建了一个自定义表单小部件.但是,我不知道如何仅将此自定义窗口小部件用于此字段.
在Django文档解释了如何使用自定义窗口小部件的所有特定类型的字段:
class StopAdmin(admin.ModelAdmin):
formfield_overrides = {
models.DateTimeField: {'widget': ApproveStopWidget }
}
Run Code Online (Sandbox Code Playgroud)
但这并不够精细.我想只为一个字段更改它.
我看到了这个问题,但它对我没有帮助.我签入了没有可执行权限的文件,现在,每次分支或签出时,该文件都不可执行.
其他一些文件确实保存为可执行文件.我猜这是因为他们在第一次检查时有可执行位 - 至少这是我的测试让我相信的.
有没有人知道修改(甚至至少查看)subversion对文件或文件夹的权限的更好方法?
我安装了python-pip
包yum
(使用Fedora的更新repo).它虽然没有添加pip
脚本PATH
.
$ which pip
/usr/bin/which: no pip in
(/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:
/usr/bin:/usr/local/sbin:/usr/sbin:/sbin)
Run Code Online (Sandbox Code Playgroud)
但它确实创造了pip-python
:
$ rpm -ql python-pip
/usr/bin/pip-python
[...snip...]
$ which pip-python
/usr/bin/pip-python
Run Code Online (Sandbox Code Playgroud)
我正在考虑建立pip
一个符号链接,pip-python
但有没有一个原因可执行文件的名称pip-python
开头?
我有一个类似下面的模型.创建实例时,我想向相关方发送电子邮件:
class TrainStop(models.Model):
name = models.CharField(max_length=32)
notify_email = models.EmailField(null=True, blank=True)
def new_stop_created(sender, instance, created, *args, **kwargs):
# Only for new stops
if not created or instance.id is None: return
# Send the status link
if instance.notify_email:
send_mail(
subject='Stop submitted: %s' % instance.name,
message='Check status: %s' % reverse('stop_status', kwargs={'status_id':str(instance.id),}),
from_email='admin@example.com',
recipient_list=[instance.notify_email,]
)
signals.post_save.connect(new_stop_created, sender=TrainStop)
Run Code Online (Sandbox Code Playgroud)
但是,该reverse
调用仅返回URL的路径部分.示例:/stops/9/status/
.我需要一个完整的URL http://example.com/stops/9/status/
.如何检索当前网站的主机名和端口(对于不使用端口80的测试实例)?
我最初的想法是通过变量使其可用settings.py
,然后我可以根据需要访问.但是,有人认为有人可能会提出更强有力的建议.
我有一个视图应该是基于GET值为表单字段设置初始值.我想测试一下.我目前正在使用Django的测试客户端,但我愿意看其他工具.
对不起,我没有提到我很清楚assertContains方法,但我希望除了在HTML中搜索input
标签和value
属性之外还有更好的方法.
根据这个问题的精神,我想知道是否有任何关于为Django webapp创建一个有用的"完整"测试套件(测试套件能否"完整"?)的技巧.
我的情况:我已经淘汰了一个原型,现在我正在努力增加一些回归测试.我个人使用django-webtest进行大多数测试,并使用Django测试客户端进行一些URL测试.
我对我的测试套件感到不舒服.我远非测试专家,所以试图改善这一目标.任何提示 - 无论是否适用于我的情况 - 都将不胜感激.
我有一个我创建的自定义模板过滤器project/app/templatetags
.
我想为我刚发现的一些错误添加一些回归测试.我该怎么做呢?
我知道is_valid()
在有界表格上检查是否输入了所有必需的数据.这不是我想要的.我想检查表单上是否填写了任何字段.
有任何想法吗?
阐述:
我想让用户选择不填写表格.但是,如果他们试图填写它(即:从一个字段中改变一个值,从它的初始值---通常为空值),我想验证它.
视图将是这样的:
def get_opinion(request):
if request.method == 'POST':
f = OpinionForm(request.POST)
if form_is_blank(f):
return HttpResponseRedirect(reverse('thank_you_anyway'))
elif f.is_valid():
#Process here
return HttpResponseRedirect(reverse('thanks_for_participating'))
else:
initial = {'weekday': date.today().strftime('%A')}
f = OpinionForm(initial=initial)
return render_to_response(
'get_opinion.html',
{'form': f,},
RequestContext(request)
)
Run Code Online (Sandbox Code Playgroud)
我想要的是这form_is_blank()
部分.
通过sudo pip-python
(CentOS 6软件包:) 安装软件包时python-pip-0.8-1.el6.noarch
,我有时会遇到权限问题,安装的软件包只能由root读取.
重新安装一次或两次通常可以解决问题.有没有人经历过这个?或者,任何人都可以建议任何故障排除步骤来确定原因吗?
python ×9
django ×6
django-forms ×2
testing ×2
centos ×1
datetime ×1
distribute ×1
django-admin ×1
fedora ×1
mocking ×1
pip ×1
svn ×1
unit-testing ×1