- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Django 测试框架(它很有用,但感觉笨拙和笨拙)。测试一直失败,回溯让我相信这是登录装饰器的问题。以下是测试、错误和相关代码:
class TestMain(TestCase):
fixtures = ['timetracker']
def test_login(self):
c = Client()
login = c.login(username='testclient', password='not.a.real.password')
self.failUnless(login, 'Could not log in')
def test_main(self):
c = Client()
login = c.login(username='testclient', password='not.a.real.password')
self.failUnless(login, 'Could not log in')
response = c.get('/', follow=True)
print response.content
#assert response.status_code == 200, response.status_code
markov:biorhythm vinceb$ nosetests -v --with-django
test_login (biorhythm.timetracker.tests.test_urls.TestMain) ... ok
test_main (biorhythm.timetracker.tests.test_urls.TestMain) ... ERROR
======================================================================
ERROR: test_main (biorhythm.timetracker.tests.test_urls.TestMain)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/vinceb/Code/python/biorhythm/timetracker/tests/test_urls.py", line 20,
in test_main
response = c.get('/', follow=True)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/test/client.py", line 281, in get
[...]
"/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/template/__init__.py", line 792, in render_node
return node.render(context)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/template/defaulttags.py", line 382, in render
raise e
NoReverseMatch: Reverse for '<django.contrib.auth.decorators._CheckLogin object at 0x22d4650>' with arguments '()' and keyword arguments '{'report_type': u'this_week'}' not found.
----------------------------------------------------------------------
Ran 2 tests in 1.112s
FAILED (errors=1)
Destroying test database...
markov:biorhythm vinceb$
@login_required
def time(request):
# initials
from biorhythm.timetracker.forms import TimeForm, TimeFormSet
from django.forms.formsets import formset_factory
# instantiate our formset factory
TimeSet = formset_factory(TimeForm, extra=1)
formset = None
# sorting worklogs
order_by = ordered(request)
success = None
真正奇怪的是关键字参数被插入到请求中,让我认为这是一个模板请求。
编辑:更多代码
urlpatterns = patterns('biorhythm.timetracker.views',
# Home
url(r'^/?$', 'time', name='home'),
# CSV exports
url(r'^reports/csv/(?P<from_date>\d{8})/(?P<to_date>\d{8})/?$', 'export_csv_report', name='csv_out'),
url(r'^dashboard/csv/?$', 'export_qbcsv', name='csv_report'),
# Reports
url(r'^summary/?$', 'reports', name='reports'),
(r'^summary/(?P<from_date>\d{8})/(?P<to_date>\d{8})/?$', 'reports'),
(r'^summary/(?P<report_type>.*?)/?$', 'reports'),
# test
(r'new_dashboard/$', 'new_dashboard'),
url(r'remove_query/(?P<position>.*?)/$', 'remove_query', name='remove_query'),
# Aggregate timesheets
url(r'^dashboard/$', 'new_dashboard', name='dashboard'),
url(r'old_dashboard/$', 'dashboard', name='old_dashboard'),
(r'^dashboard/(?P<user_id>.*?)/?$', 'dashboard'),
(r'^dashboard/(?P<from_date>\d{8})/(?P<to_date>\d{8})/?$', 'dashboard'),
)
@login_required
def time(request):
# initials
from biorhythm.timetracker.forms import TimeForm, TimeFormSet
from django.forms.formsets import formset_factory
# instantiate our formset factory
TimeSet = formset_factory(TimeForm, extra=1)
formset = None
# sorting worklogs
order_by = ordered(request)
success = None
if request.method == 'POST':
from django.contrib.admin.models import LogEntry, ADDITION
from django.contrib.contenttypes.models import ContentType
# we have to make sure we have a matching contenttype for this model
# normally we will, but first entry may not have this
worklog, created = ContentType.objects.get_or_create(name='worklog', app_label='timetracker', model='worklog')
# pertinent fields
dats = 'project duration note category start_date'.split()
# instantiate formset
formset = TimeSet(request.POST)
for i, form in enumerate(formset.forms):
labs = ['form-%d-%s' % (i, d) for d in dats]
project, duration, note, category, start_date = [request.POST.get(l, None) for l in labs]
check_against = [project, duration, note, start_date]
# Checks that required fields have been filled with input longer than 0.
if 0 not in [len(x) for x in check_against]:
if form.is_valid():
project, duration, note, category, start_date = [form.cleaned_data.get(l, None) for l in dats]
if None not in check_against:
# this is a form we can process & save so let's
# get our pk for logging activity
instance = form.save(commit=False)
if instance:
# default values and save again
instance.start_date = form.cleaned_data.get('start_date')
instance.user = request.user
instance.save()
# Output a nice message to the client
s = 's' if duration > 1 else '' # pluralization!
message = "%s hour%s spent %s on %s" % (duration, s, note, project.name)
request.user.message_set.create(message=message)
# Append this action (addition) to the LogEntry table
_send_LogEntry(request.user.pk, worklog.id, worklog.id,
force_unicode(project), message)
success = True
else:
# Form _not_ valid. Continue outputting the formset with error messages.
pass
else:
# Form missing required field
continue
if success is True:
return http.HttpResponseRedirect(request.get_full_path())
# get our data
worklogs = Worklog.objects.select_related().filter(user=request.user.id).order_by(order_by, '-id')
time_week = worklogs.filter(start_date__gte=start_of_week()).aggregate(Sum('duration'))
time_day = worklogs.filter(start_date__gte=today()).aggregate(Sum('duration'))
#time_week = worklogs.filter(start_date__gte=start_of_week()).objects.objects.get_total_time()
#time_day = worklogs.filter(start_date__gte=today()).objects.get_total_time()
reports = return_time_report()
# instantiate projects for initial data for form for the last 14 days
# was 30 days, now 14 at Nik's request -J
month = datetime.timedelta(days=14)
worklog_projects = worklogs.filter(start_date__gte=today()-month)
projects = dict.fromkeys([p.project for p in worklog_projects]).keys()
if not formset:
initial_data = [{'project':p.id, 'start_date':'today'} for p in projects]
formset = TimeSet(initial=initial_data)
has_logs = True if int(worklogs.count()) > 0 else False
logs = paginate(request, worklogs, 'worklogs')
logs_list = logs.object_list
# Initialize categories from a query object, so they can be sent to JQuery
# via JSON to make auto-complete work.
cat_list = []
for c in Category.objects.all():
cat_list.append(dict(id=str(c.id), name=c.name))
cats = json.dumps(cat_list)
context = RequestContext(request)
return render_to_response('log.html', {'formset':formset, 'worklogs':logs_list, 'v':locals(), 't':reports}, context)
这就是整个 View 。
这是一个巨大的帖子,所以模板在这里:http://dpaste.com/110860/
最佳答案
那里报告的错误日志告诉您大部分您需要知道的内容:
首先你有:
in test_main
response = c.get('/', follow=True)
这意味着它在尝试处理该请求时快要死了。下一页:
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/test/client.py", line 281, in get
[...]
"/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/template/__init__.py", line 792, in render_node
return node.render(context)
在模板中呈现节点时它正在消亡,这意味着它正在获取 模板,而不是在登录时消亡。最后:
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/template/defaulttags.py", line 382, in render
raise e
NoReverseMatch: Reverse for '<django.contrib.auth.decorators._CheckLogin object at 0x22d4650>' with arguments '()' and keyword arguments '{'report_type': u'this_week'}' not found.
它在尝试反转模板中的 url 时引发异常,这意味着您使用 View 函数的路径和参数“this_week”在某处调用了 {% url %}
标记,但这不是根据您的 URLconf 调用 View 函数的合适方式。
修正你的 {% url %}
标签或你的 View 函数定义,它就会工作。
关于带有登录装饰器的 Django 测试框架 - 它们有效吗?反向错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1610093/
我需要开发一个简单的网站,我通常使用 bootstrap CSS 框架,但是我想使用 Gumbyn,它允许我使用 16 列而不是 12 列。 我想知道是否: 我可以轻松地改变绿色吗? 如何使用固定布局
这个问题在这里已经有了答案: 关闭 13 年前。 与直接编写 PHP 代码相比,使用 PHP 框架有哪些优点/缺点?
我开发了一个 Spring/JPA 应用程序:服务、存储库和域层即将完成。 唯一缺少的层是网络层。我正在考虑将 Playframework 2.0 用于 Web 层,但我不确定是否可以在我的 Play
我现有的 struts Web 应用程序具有单点登录功能。然后我将使用 spring 框架创建一个不同的 Web 应用程序。然后想要使用从 struts 应用程序登录的用户来链接新的 spring 应
我首先使用Spark框架和ORMLite处理网页上表单提交的数据,在提交中文字符时看到了unicode问题。我首先想到问题可能是由于ORMLite,因为我的MySQL数据库的字符集已设置为使用utf8
我有一个使用 .Net 4.5 功能的模块,我们的应用程序也适用于 XP 用户。所以我正在考虑将这个 .net 4.5 依赖模块移动到单独的项目中。我怎样才能有一个解决方案,其中有两个项目针对不同的版
我知道这是一个非常笼统的问题,但我想我并不是真的在寻找明确的答案。作为 PHP 框架的新手,我很难理解它。 Javascript 框架,尤其是带有 UI 扩展的框架,似乎通过将 JS 代码与设计分开来
我需要收集一些关于现有 ORM 解决方案的信息。 请随意编写任何编程语言。 你能谈谈你用过的最好的 ORM 框架吗?为什么它比其他的更好? 最佳答案 我使用了 NHibernate 和 Entity
除了 Apple 的 SDK 之外,还有什么强大的 iPhone 框架可供开始开发?有没有可以加快开发时间的方法? 最佳答案 此类框架最大的是Three20 。 Facebook 和许多其他公司都使用
有人可以启发我使用 NodeJS 的 Web 框架吗?我最近开始从免费代码营学习express js,虽然一切进展顺利,但我对express到底是什么感到困惑。是全栈框架吗?纯粹是为了后端吗?我发现您
您可以推荐哪种 Ajax 框架/工具包来构建使用 struts 的 Web 应用程序的 GUI? 最佳答案 我会说你的 AJAX/javascript 库选择应该较少取决于你的后端是如何实现的,而更多
我有生成以下错误的 python 代码: objc[36554]: Class TKApplication is implemented in both /Library/Frameworks/Tk.
首先,很抱歉,如果我问的问题很明显,因为我没有编程背景,那我去吧: 我想运行一系列测试场景并在背景部分声明了几个变量(我打印它们以仔细检查它们是否已正确声明),第一个是整数,另外两个字符串为你可以看到
在我们承担的一个项目中,我们正在寻找一个视频捕获和录制库。我们的基础工作(基于 google 搜索)表明 vlc (libvlc)、ffmpeg (libavcodec) 和 gstreamer 是三
我试过没有运气的情况下寻找某种功能来杀死/中断Play中的正常工作!框架。 我想念什么吗?还是玩了!实际没有添加此功能? 最佳答案 Java stop类中没有像Thread方法那样的东西,由于种种原因
我们希望在我们的系统中保留所有重大事件的记录。例如,在数据库可能存储当前用户状态的地方,事件日志应记录对该状态的所有更改以及更改发生的时间。 事件记录工具应该尽可能接近于事件引发器的零开销,应该容纳结
那里有 ActionScript 2.0/3.0 的测试框架列表吗? 最佳答案 2010-05-18 更新 由于这篇文章有点旧,而且我刚刚收到了赞成票,因此可能值得提供一些更新的信息,这样人们就不会追
我有一个巨大的 numpy 数组列表(一维),它们是不同事件的时间序列。每个点都有一个标签,我想根据其标签对 numpy 数组进行窗口化。我的标签是 0、1 和 2。每个窗口都有一个固定的大小 M。
我是 Play 的新手!并编写了我的第一个应用程序。这个应用程序有一组它依赖的 URL,从 XML 响应中提取数据并返回有效的 URL。 此应用程序需要在不同的环境(Dev、Staging 和 Pro
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 4年前关闭。 Improve thi
我是一名优秀的程序员,十分优秀!