class TestKarlUserWidget(TestCase): def setUp(self): self.field = Mock() self.field.name='users' self.widget = KarlUserWidget() def test_subclass(self): # assume other bits behave as per base widget :-) self.assertTrue(isinstance(self.widget,Widget)) def test_serialize(self): # call self.assertEqual( self.widget.serialize(self.field,''), self.field.renderer.return_value ) # check we called renderer correctly self.field.renderer.assert_called_with( 'karluserwidget', cstruct=(), field=self.field ) def test_serialize_field_not_users(self): self.field.name = 'somethingelse' with ShouldRaise(Exception( "This widget must be used on a field named 'users'" )): self.widget.serialize(self.field,''), # check renderer not called self.assertFalse(self.field.renderer.called) def test_deserialize(self): pstruct = [] returned = self.widget.deserialize(self.field,pstruct) # use identity to check we just pass through self.assertTrue(returned is pstruct)
def setUp(self): self.field = Mock() self.field.name='users' self.widget = KarlUserWidget()