Django - 时间戳单元测试

时间:2012-06-25 20:30:04

标签: django unit-testing django-unittest

我的应用程序根据作为自定义URL输入提供的日期和时间提供状态。通常它会使用当前时间(datetime.now()),但我想创建单元测试来验证未来的时间。但是,我在使用时间戳作为要测试的变量时遇到了问题。想法?这是迄今为止的代码:

urls.py:

urlpatterns = patterns('',
   (r'^/(\w+)/status/$', 'app.views.fetch_status'),
   # Normally:
   #(r'^/(\w+)/status/$', 'app.views.fetch_status', {'timestamp': datetime.now() }),
   ...

views.py:

def fetch_status(request, slug, timestamp):
    ...

tests.py:

class TimeTests(TestCase):
    fixtures = ['hours.json']

    def testSchedule(self):
        timestamp = datetime(2012, 6, 19, 5, 0)
        client = Client()
        response = client.get('/service/status/', {'timestamp': timestamp})
        self.assertEqual(response.context['status'], 'closed')

结果:

TypeError: fetch_status() takes exactly 2 arguments (1 given)

1 个答案:

答案 0 :(得分:1)

为什么要将模式更改为不包含timestamp参数?从它的外观,并根据你的错误,该函数期待一个更多的参数,你没有真正提供,因为你改变了模式。