小编Pra*_*mar的帖子

python单元测试用例中self.assertRaises未涵盖的异常声明

这是我的功能:

def get_value(request, param):
  s = get_string(request, param)
  value = re.search('(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)', s)
  if not value:
    print 'match not found!'  
    raise Exception('incorrect format: %s' % param)
Run Code Online (Sandbox Code Playgroud)

测试功能:

def test_get_value(self):
    m = test_mocks.HttpRequestMock(REQUEST = {'start_date': '2011.07.31'})
    print '*************************'
    print 'date format changed'
    self.assertRaises(Exception, get_value, (m, 'start_date'))
    print '*********************
Run Code Online (Sandbox Code Playgroud)

get_value不打印:匹配未找到!

python unit-testing assertraises

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

重写__cmp__ python函数

嗨,我压倒一切__cmp__.如果传递的第二个对象是None,或者它不是实例someClass,则返回-1.

我不明白这里到底发生了什么.

class someClass():
    def __cmp__(self, obj):
        if obj == None:
            return -1
        if not isinstance(obj, someClass):
            return -1  
Run Code Online (Sandbox Code Playgroud)

我的测试功能:

def test_function(self):  
        obj1 = someClass()
        self.assertTrue(obj1 < None)
        # I get true.
        self.assertTrue(obj1 > None)
        # I get failure as False is returned.
Run Code Online (Sandbox Code Playgroud)

有人可以向我解释一下:

  • 什么是回报值?
  • 它是如何决定是否会返回TrueFalse何时更改比较标志?

python

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

第26行的语法错误

第26行的语法错误.这是下面的代码.不知道为什么我会收到错误.在python中实现快速排序

'''快速排序'''

def quicksort(arr, size):
    partition(arr, size)

def partition(arr, size):
    if size <= 1:
        return

    left = 0
    right = size - 1
    pivot = arr[size/2]

    while left < right:
        while arr[left] < pivot:
            left += 1
        while arr[right] > pivot:
            right -= 1

        temp = arr[left]
        arr[left] = arr[right]
        arr[right] = temp

    partition(arr, left)
    partition(arr[left:], len(arr[left:]) 
arr = [1,2,3,4,5,45,3,5,4,6]  
quicksort(arr, len(arr))
Run Code Online (Sandbox Code Playgroud)

python syntax-error quicksort

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