小编gec*_*kon的帖子

Django测试运动员没有找到测试

我是Python和Django的新手,我正在通过创建一个饮食管理网站来学习,但我已经完全失败了让我的单元测试运行.我发现的所有文档和博客都说,只要它可以从tests.py中找到,tests.py与models.py在同一个文件夹中,并且你的测试类是子类TestCase,它应该全部自动获取.这对我manage.py test <myapp>不起作用,当我运行它时没有找到任何测试.

我从他们自己的软件包开始我的所有测试,但已将其简化为仅在我的tests.py文件中的所有测试.当前的tests.py看起来像:

import unittest
from pyDietTracker.models import Weight
from pyDietTracker.weight.DisplayDataAdapters import DisplayWeight

class TestDisplayWeight(unittest.TestCase):

    def setUp(self):
        pass

    def tearDown(self):
        pass

    def testGetWeightInStone_KG_Correctly_Converted(self):
        weight = Weight()
        weight.weight = 99.8

        testAdapter = DisplayWeight(weight)
        self.assertEquals(testAdapter.GetWeightInStone(), '15 st 10 lb')   
Run Code Online (Sandbox Code Playgroud)

我已经通过继承Django TestCase类来尝试它,但这也没有用.我正在使用Django 1.1.1,Python 2.6并且我正在运行Snow Leopard.

我确定我遗漏了一些非常基本和明显的东西,但我无法解决问题.有任何想法吗?

编辑:评论后只需快速更新

INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.admin',
'pyDietTracker',
 )
Run Code Online (Sandbox Code Playgroud)

为了让测试运行,我正在运行 manage.py test pyDietTracker

python django unit-testing

60
推荐指数
11
解决办法
3万
查看次数

覆盖自定义类的bool()

所有我想要的是bool(myInstance)返回False(并且myInstance在条件中评估为False,如if /或/和.我知道如何覆盖>,<,=)

我试过这个:

class test:
    def __bool__(self):
        return False

myInst = test()
print bool(myInst) #prints "True"
print myInst.__bool__() #prints "False"
Run Code Online (Sandbox Code Playgroud)

有什么建议?

(我使用的是Python 2.6)

python casting boolean class python-2.x

50
推荐指数
4
解决办法
2万
查看次数

C中函数调用操作符的相关性

我正在讨论C运营商的关联性话题.

在那里我遇到了这个事实,函数调用操作符()具有从左到右的关联性.但是,当表达式中出现相同优先级的多个运算符时,关联性才会发挥作用.但我找不到涉及函数调用运算符的任何示例,其中关联性起着至关重要的作用.

例如,在语句中a = f(x) + g(x);,结果取决于评估顺序,而不取决于两个函数调用的关联性.类似地,调用f(g(x))g()首先评估函数,然后是函数f().这里我们有一个嵌套的函数调用,并且再次关联不起任何作用.

此优先级组中的其他C运算符是数组下标[],postfix ++postfix --.但我找不到任何涉及这些运算符组合的例子,()其中关联性在表达式评估中起作用.

所以我的问题是函数调用的关联性是否从左到右定义影响C中的任何表达式?任何人都可以提供一个示例,其中函数调用运算符的关联性()在表达式求值中是否重要?

c associativity

31
推荐指数
2
解决办法
2541
查看次数

重命名Django迁移文件是否安全?

从Django 1.8开始,该makemigrations命令可以--name, -n 选择为创建的迁移文件指定自定义名称.

我想知道在旧版本的Django中使用自动生成的名称创建迁移文件是否安全,然后手动重命名该文件.它似乎按预期工作.有潜在的风险吗?

django django-migrations

24
推荐指数
2
解决办法
6129
查看次数

Django迁移和FileSystemStorage取决于设置

在我的Django应用程序中,我使用了FileSystemStorage生成的文件.我像这样初始化它:

import os
from urlparse import urljoin

from django.conf import settings
from django.core.files.storage import FileSystemStorage

gen_files_storage = FileSystemStorage(location=os.path.join(settings.MEDIA_ROOT, 'generated/'), base_url=urljoin(settings.MEDIA_URL, 'generated/'))
Run Code Online (Sandbox Code Playgroud)

当我想创建一个新文件时,我使用:

from django.core.files.base import ContentFile
from django.db import models

def next_number():
    # num = ...
    return num

gen_file = models.FileField(storage=gen_files_storage)
gen_file.save('file%s.txt' % next_number(), ContentFile(''))
Run Code Online (Sandbox Code Playgroud)

这很好.唯一的问题是FileSystemStorageDjango迁移中的路径是"硬编码".因为我使用不同的设置进行开发(更改)和生产,所以manage.py makemigrations命令通常只会因为路径发生变化而生成迁移,尽管数据库中的所有内容都保持不变.

我知道有一个使用子类的解决方案FileSystemStorage(参见下面的答案),但有更好的解决方案吗?

python django django-migrations

16
推荐指数
2
解决办法
1464
查看次数

诗歌 - 当版本不兼容时强制安装?

Poetry 有一个非常好的版本解算器,有时太好了:) 我试图在一个使用两个不兼容的包的项目中使用 Poetry。然而,它们仅通过声明是不兼容的,因为其中之一不再开发,但除此之外它们可以很好地协同工作。

使用 pip,我可以在一个环境中安装它们(打印错误)并且它可以工作。Poetry 将声明无法解析依赖项版本并拒绝安装任何内容。

有没有办法强制诗歌安装这些不兼容的依赖项?谢谢你!

python python-poetry

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

如何在Python中的HTTP头中设置和检索cookie?

我需要从服务器发送的HTTP响应中获取cookie并将其放入下一个请求的标头中.我该怎么做?

提前致谢.

python cookies http-headers

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

我在哪里可以找到PEP 257文档字符串约定的正确示例?

PEP 257说:

在记录类的所有文档字符串(单行或多行)之前和之后插入一个空行 - 一般来说,类的方法通过一个空行彼此分开,并且docstring需要从第一种方法是一个空白行; 为了对称,在类头和docstring之间加一个空行.

但我似乎无法找到任何实际实现此功能的代码.

我已经检查了Python 2.6提供的几个标准模块,甚至专门搜索了提到Guido名称的模块.但即使是rietveld代码审查工具的代码也不符合恕我直言(例如http://code.google.com/p/rietveld/source/browse/upload.py):

class CondensedHelpFormatter(optparse.IndentedHelpFormatter):
   """Frees more horizontal space by removing indentation from group
      options and collapsing arguments between short and long, e.g.
      '-o ARG, --opt=ARG' to -o --opt ARG"""

   def format_heading(self, heading):
     return "%s:\n" % heading
Run Code Online (Sandbox Code Playgroud)

此多行文档字符串之前没有空白行,后面的空白行位于结束引号之外.

此类/usr/lib64/python2.6/site.py之前没有空行,但在结束引号之前和之后有一个空行.

class _Helper(object):
    """Define the built-in 'help'.
    This is a wrapper around pydoc.help (with a twist).

    """

    def __repr__(self):
Run Code Online (Sandbox Code Playgroud)

是否有可用于演示PEP 257的示例?

提前致谢

python coding-style

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

如何将终端窗格分离到新窗口?

是否可以分离其中一个终端窗格(拆分窗口,而不是标签)terminator并将其移动到新窗口?我知道有一个解决方法(请参阅下面的答案),但我正在寻找一个更好的(更加用户友好的)解决方案.

linux terminal terminator

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

如何在 VIM 中指定 Python 解释器版本?

为了在 Vim 中用插件编写 C++,Clang_complete。
安装后出现这个错误:

Error detected while processing function <SNR>14_ClangCompleteInit..<SNR>14_initClangCompletePython:
clang_complete: No python support available.
Cannot use clang library
Compile vim with python support to use libclang
Run Code Online (Sandbox Code Playgroud)

但是我的 vim 支持 python 和 python3。+python/dyn +python3/dyn
然后我检查我的python解释器:

:echo has('python')      # output is 0
:echo has('python3')     # output is 1
Run Code Online (Sandbox Code Playgroud)

所以,我认为原因是我的vim默认动态加载python3解释器。
我可以更改 python 解释器吗?或者设置python的默认动态加载版本?

c++ python vim plugins autocomplete

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