如何使用模拟测试以下代码(使用模拟,修补程序装饰器和Michael Foord的Mock框架提供的标记):
def testme(filepath):
with open(filepath, 'r') as f:
return f.read()
Run Code Online (Sandbox Code Playgroud) 我想在我的(Python)代码中使用Django模板引擎,但我不是在构建基于Django的网站.如何在没有settings.py文件(和其他人)的情况下使用它并且必须设置DJANGO_SETTINGS_MODULE环境变量?
如果我运行以下代码:
>>> import django.template
>>> from django.template import Template, Context
>>> t = Template('My name is {{ my_name }}.')
Run Code Online (Sandbox Code Playgroud)
我明白了:
ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.
Run Code Online (Sandbox Code Playgroud) 在p4v中查看提交的更改列表时,有没有办法显示特定的更改列表编号?也就是说,我如何p4 describe在p4v中完成相同的操作?我可以过滤特定的变更清单编号吗?我不知道怎么样.
我正在玩,尝试编写一些代码来使用tr.im API来缩短URL.
在阅读http://docs.python.org/library/urllib2.html后,我尝试了:
TRIM_API_URL = 'http://api.tr.im/api'
auth_handler = urllib2.HTTPBasicAuthHandler()
auth_handler.add_password(realm='tr.im',
uri=TRIM_API_URL,
user=USERNAME,
passwd=PASSWORD)
opener = urllib2.build_opener(auth_handler)
urllib2.install_opener(opener)
response = urllib2.urlopen('%s/trim_simple?url=%s'
% (TRIM_API_URL, url_to_trim))
url = response.read().strip()
Run Code Online (Sandbox Code Playgroud)
response.code是200(我认为它应该是202).url有效,但基本的HTTP身份验证似乎没有用,因为缩短的URL不在我的URL列表中(在http://tr.im/?page=1).
在阅读http://www.voidspace.org.uk/python/articles/authentication.shtml#doing-it-properly后, 我也尝试过:
TRIM_API_URL = 'api.tr.im/api'
password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
password_mgr.add_password(None, TRIM_API_URL, USERNAME, PASSWORD)
auth_handler = urllib2.HTTPBasicAuthHandler(password_mgr)
opener = urllib2.build_opener(auth_handler)
urllib2.install_opener(opener)
response = urllib2.urlopen('http://%s/trim_simple?url=%s'
% (TRIM_API_URL, url_to_trim))
url = response.read().strip()
Run Code Online (Sandbox Code Playgroud)
但我得到了相同的结果.(response.code为200且url有效,但未在我的帐户http://tr.im/中记录.)
如果我使用查询字符串参数而不是基本HTTP身份验证,如下所示:
TRIM_API_URL = 'http://api.tr.im/api'
response = urllib2.urlopen('%s/trim_simple?url=%s&username=%s&password=%s'
% (TRIM_API_URL,
url_to_trim,
USERNAME,
PASSWORD))
url = response.read().strip()
Run Code Online (Sandbox Code Playgroud)
...然后不仅url有效,而且它记录在我的tr.im帐户中.(虽然response.code仍然是200.) …
我正在尝试获得一个目标来构建其元素中有相当长的列表<pathelement location="${xxx}"/>和<path refid="foo.class.path"/>元素<path id="bar.class.path">(在build.xml文件中).我一直得到"包com.somecompany.somepackage不存在"错误,我很难追逐这些包并确保我已经从我们的存储库中同步它们.
我是这个团队的新手,所以我对构建不熟悉,但如果可能的话,我更愿意自己解决这个问题(所以我不打扰其他非常繁忙的团队成员).我对Ant的经验非常有限.
我认为如果我可以让Ant打印出我正在尝试构建的目标的类路径,那将节省我很多时间.
如何使用字符串的内容创建类似文件的对象(与文件类似的鸭子类型)?
我有以下代码:
import string
def translate_non_alphanumerics(to_translate, translate_to='_'):
not_letters_or_digits = u'!"#%\'()*+,-./:;<=>?@[\]^_`{|}~'
translate_table = string.maketrans(not_letters_or_digits,
translate_to
*len(not_letters_or_digits))
return to_translate.translate(translate_table)
Run Code Online (Sandbox Code Playgroud)
哪个适用于非unicode字符串:
>>> translate_non_alphanumerics('<foo>!')
'_foo__'
Run Code Online (Sandbox Code Playgroud)
但unicode字符串失败:
>>> translate_non_alphanumerics(u'<foo>!')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 5, in translate_non_alphanumerics
TypeError: character mapping must return integer, None or unicode
Run Code Online (Sandbox Code Playgroud)
对于str.translate()方法,我无法理解Python 2.6.2文档中 "Unicode对象"的段落.
如何使这个工作适用于Unicode字符串?
一个元组,包含一个打开文件的操作系统级句柄(由os.open()返回)和该文件的绝对路径名,按顺序排列.
如何将操作系统级别的句柄转换为文件对象?
要将文件描述符包装在"文件对象"中,请使用fdopen().
所以我尝试过:
>>> import tempfile
>>> tup = tempfile.mkstemp()
>>> import os
>>> f = os.fdopen(tup[0])
>>> f.write('foo\n')
Traceback (most recent call last):
File "<stdin>", line 1, in ?
IOError: [Errno 9] Bad file descriptor
Run Code Online (Sandbox Code Playgroud)