小编Pur*_*ell的帖子

如何在Python中生成html单元测试输出?

我正在寻找任何方式在HTML摘要中显示python单元测试的结果.对于Java和Ruby,有类似的工具......还没有找到任何似乎为Python做这个的工具.那里有没有?

JUnit html输出:

替代文字http://www.ibm.com/developerworks/java/library/j-grails03118/UnitTestReport.jpg

Ruby RSpec输出:

alt text http://www.natontesting.com/wp-content/uploads/2009/09/rspec_output.gif

python unit-testing nose

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

仅在禁用javascript时启用提示提交事件/提交按钮

我在表单上有一些客户端JavaScript验证.它很棒.但是我想要容纳禁用JavaScript的用户.我的验证不是从表单的onsubmit属性运行的,它是一个绑定到表单中普通按钮的事件处理程序.因此,启动验证和提交的按钮实际上不是提交,它只是type ="button":

<input type="button" value="Ok" class="okbtn">
Run Code Online (Sandbox Code Playgroud)

然后我向其执行验证的click事件注册一个事件处理程序.它提交,如果一切都通过:

function clickHandler(event){
    thisForm = event.data.caller
    var valid = submitValidation(thisForm);
    if (valid == true){
        thisForm.submit();
    } else{
      }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是如果用户已禁用JS,则无法提交表单.我可以做的按钮type="submit",这将对于JS-禁用用户的工作,但随后将*总是提交表单,并绕过启用JS-用户验证.(验证将运行,但无论如何都会提交).如果我按下按钮type="submit"可以阻止提交事件,如果它被点击?我正在使用JQuery,JQuery可以抑制提交吗?我希望我的验证能够处理它是否被提交.

html forms jquery submit

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

django形成error_class

有没有办法在表单定义中为表单提供特殊的错误呈现功能?在customizing-the-error-list-format下的文档中,它显示了如何为表单提供特殊的错误呈现功能,但是在实例化表单时似乎必须声明它,而不是在定义表单时.

所以你可以定义一些ErrorList类,如:

from django.forms.util import ErrorList
 class DivErrorList(ErrorList):
     def __unicode__(self):
         return self.as_divs()
     def as_divs(self):
         if not self: return u''
         return u'<div class="errorlist">%s</div>' % ''.join([u'<div class="error">%s</div>' % e for e in self])
Run Code Online (Sandbox Code Playgroud)

然后,当您实例化表单时,可以使用该error_class实例化它:

 f = ContactForm(data, auto_id=False, error_class=DivErrorList)
 f.as_p()

<div class="errorlist"><div class="error">This field is required.</div></div>
<p>Subject: <input type="text" name="subject" maxlength="100" /></p>
<p>Message: <input type="text" name="message" value="Hi there" /></p>
<div class="errorlist"><div class="error">Enter a valid e-mail address.</div></div>
<p>Sender: <input type="text" name="sender" value="invalid e-mail address" /></p>
<p>Cc myself: <input checked="checked" type="checkbox" name="cc_myself" …
Run Code Online (Sandbox Code Playgroud)

django django-templates django-forms

4
推荐指数
1
解决办法
3181
查看次数

XPATH 查询中的 html 4.0 实体

我不知道为什么 xpath 表达式:

//h3[text()='Foo &rsaquo; Bar']
Run Code Online (Sandbox Code Playgroud)

不匹配:

<h3>Foo &rsaquo; Bar</h3>
Run Code Online (Sandbox Code Playgroud)

这看起来对吗?如何查询该标记?

xpath

3
推荐指数
1
解决办法
1706
查看次数

Django contrib.auth.models.User与Django MongoDB引擎

你可以使用contrib.auth.models.User或任何contrib.auth和Django MongoDB引擎吗?

我按照指示配置了MongoDB引擎,并且适用于自定义模型,但是:

from django.contrib.auth.models import User
a = User.objects.create_user(username='foo', email='foo@bar.com',
                             password='foo123bar')
a.save()
    ...
    ERROR: An unexpected error occurred while tokenizing input
    The following traceback may be corrupted or invalid
    The error message is: ('EOF in multi-line statement', (5, 0))
    ...

    ValueError: invalid literal for int() with base 10: '4f3757d4eb60261dae000001'
Run Code Online (Sandbox Code Playgroud)

有没有办法使用普通的用户模型和auth系统,还是我现在必须实现自己的?

如果它目前不受支持或者是未知的领域,那么有没有办法将用户存储在mysql中,所有我的mongodb引擎模型都存储在MongoDB中?

django django-models mongodb django-mongodb-engine

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

乘客5 Nginx X-Accel-Redirect

X-Accel-Redirect与乘客一起使用Nginx的功能,显然你使用passenger_set_header和,如果映射到另一个位置,passenger_set_cgi_param.例如,这是一个显然用于为其他人工作配置:

passenger_set_cgi_param HTTP_X_ACCEL_MAPPING "/home/user/rails_app/shared/files/=/documents/";
passenger_pass_header X-Accel-Redirect;

location ~ ^/documents/(\d\d\d)/(\d\d\d)/(\d\d\d)/(.*)$ {
  alias /home/user/rails_app/shared/files/$1/$2/$3/$4;
  internal;
}
Run Code Online (Sandbox Code Playgroud)

但是在乘客5中他们在发行说明中说:

[Nginx]该passenger_set_cgi_param选项已被删除并替换为passenger_set_headerpassenger_env_var.

关于如何将两者结合在一起用于X-Accel-Redirect的信息并不多.没有最新的教程或博客似乎也显示了如何做到这一点.这是怎么做到的?我可以使用以下nginx.conf来为rails开发服务器(非乘客)工作,但它不适用于乘客.

upstream api_server {
   server localhost:5000;
   # (starting passenger with ``` RAILS_ENV=development passenger start -a 127.0.0.1 -p 5000 -d ```) not using unix:socket for a good reason
}

server {
    listen              9000;
    server_name         $host;
    return 301          https://$host:9443$request_uri;
    #error_page 497 https://$host:9443$request_uri;
}

server {
    charset UTF-8;

    server_name …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails passenger nginx ruby-on-rails-4

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

如何以操作系统友好的方式引用本地路径?

在PHP中,如何以操作系统友好的方式引用文件?我正在看一些类似的代码

<?php
require_once(dirname(dirname(__FILE__)).'/common/config.inc.php');

...
Run Code Online (Sandbox Code Playgroud)

我必须在Windows机器上运行,但它不解析正确的路径:

PHP Warning:  require_once(C:\workspace/common/config.inc.php): failed to open stream: No such file or directory in C:\workspace\somescript.php on line 2
PHP Fatal error:  require_once(): Failed opening required 'C:\workspace/common/config.inc.php' (include_path='.;C:\php5\pear') in C:\workspace\somescript.php on line 2
Run Code Online (Sandbox Code Playgroud)

看起来它正试图打开窗户不喜欢的正斜杠.文件C:\ workspace\commonconfig.inc.php存在.该脚本只是找不到它,因为它有正斜杠吗?

在require_once语句中,我不应该以某种os友好的方式表达路径的最后部分吗?你是怎样做的?

在PHP中,是否有类似于Python的 os.path.normpath(path)?..which采用类似路径的字符串并返回适合正在运行的OS的路径...

php

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

log4js ConsoleAppender初始化

我想知道是否有人碰巧使用Log4js有一些经验?看来它的正常ConsoleAppender在添加到logger对象后并不总是可以立即使用...如果我在文档中有两个顺序脚本标记,如:

//Initialize logger
<script type="text/javascript">                   
      var logger = new Log4js.getLogger("JSLOG");
      logger.addAppender(new Log4js.ConsoleAppender(logger, false));
      logger.setLevel(Log4js.Level.INFO);         
</script>


//Use logger
<script type="text/javascript">
     logger.info('Test test');
</script>
Run Code Online (Sandbox Code Playgroud)

...它会导致控制台弹出窗口(弹出窗口)出现,并在页面加载时显示错误消息:

12:58:23 PM WARN Log4js - Could not run the listener function () {
    return fn.apply(object, arguments);
}. 
TypeError: this.outputElement is null
Run Code Online (Sandbox Code Playgroud)

控制台仍然是初始化的,之后它就在那里,但是对于第一个记录器调用它似乎并不完全存在.如果我使第一个记录器调用setTimeout("logger.info('test test')",1000),它没有错误.所以它就像它没有立即准备好.任何人以前都会看到这个或知道解决方法可能是什么?

干杯

javascript logging log4js-node

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

如何保存配置文件/ python文件IO

我有这个python代码用于打开.cfg文件,写入并保存它:

import ConfigParser 

    def get_lock_file():
        cf = ConfigParser.ConfigParser()
        cf.read("svn.lock")
        return cf
    def save_lock_file(configurationParser):
        cf = configurationParser
        config_file = open('svn.lock', 'w')
        cf.write(config_file)
        config_file.close()
Run Code Online (Sandbox Code Playgroud)

这看起来是正常的还是我错过了一些关于如何打开写保存文件的东西?是否有更标准的方式来读取和写入配置文件?

我问,因为我有两个似乎做同样事情的方法,他们得到配置文件句柄('cf')调用cf.set('blah','foo'bar)然后使用上面的save_lock_file(cf)调用.对于一种方法,它起作用,而对于另一种方法,写入永远不会发生,不确定为什么在这一点上.

def used_like_this():
        cf = get_lock_file()
        cf.set('some_prop_section', 'some_prop', 'some_value')
        save_lock_file(cf)
Run Code Online (Sandbox Code Playgroud)

python file-io file configuration-files

0
推荐指数
1
解决办法
4430
查看次数