2015-11-03 80 views
1

我有尝试运行的Django 的考验,这是我的模型文件类型错误:__init __()采用最多2个参数(给出4)

class MountPoint(models.Model): 
     name = models.CharField(max_length=100) 
     backend = models.CharField(max_length=200,default=DEFAULT_BACKEND) 
     path = models.CharField(max_length=300) 

     def __unicode__(self): 
      return self.name 

代码和这里的时候错误消息是类我投入测试

class MountPoint(TestCase): 
     def create_mountpoint(self): 
      name = "test" 
      backend = "test" 
      path = user_root 
      return MountPoint(name, backend, path) 

     def test_mountpoint_creation(self): 
      m = self.create_mountpoint() 
      self.assertTrue(isinstance(m, MountPoint)) 
      self.assertEqual(m.__unicode(), m.name) 

和我得到的错误消息是在下面。它说我有比预期更多的投入。

回溯(最近通话最后一个): 文件 “/Users/xihui/Documents/WebProgramming/django/ece264site/filesystem/tests.py” 18行,在test_mountpoint_creation M = self.create_mountpoint() 文件“/Users/xihui/Documents/WebProgramming/django/ece264site/filesystem/tests.py”,第15行,在create_mountpoint中 返回MountPoint(名称,后端,路径) TypeError:init()至多需要2个参数4给定)


冉1测试0.009s

失败(错误= 1)

+3

测试类的名称阴影模型类的名称,所以当您尝试实例化一个模型实际上,它试图创建一个测试类的新实例,显然它采用了不同的参数。顺便说一句,您的测试类重命名为'TestMountPoint' – andrean

+0

,DEFAULT_BACKEND ='filesystem.backend.HDWrapper.DirectionHDWrapper,filesystem.backend.HDWrapper.DocumentHDWrapper' –

回答

1

我认为你必须使用关键字ARGS:

return MountPoint(name=name, backend=backend, path=path) 
相关问题