def test_get_form_data(self): """Get model data for form fields using our mapping.""" expected_output = { 'name': 'Database', 'test_no_mapping-initial': {}, 'test_mapping-initial': { 'fake_field': 'Something unexpected', 'fake_title': None, }, } fake_mapper = Mapper(FakeForm) fake_model = FakeModel() fake_model.item_name = 'Database' fake_model.fake_field = 'Something unexpected' fake_initial_form_data = fake_mapper.get_form_data(fake_model) # Our form field name (as we expect it) equals our model attribute. self.assertEqual(fake_initial_form_data, expected_output)
def test_get_form_data_as_callable(self): """Use callable instead of static definition of form field.""" fake_model_value = 'Fun Test Data' def get_model_attr(model_inst): """Pretend we're looking up model data from another model.""" return fake_model_value class FakeFormWithCallable(forms.Form): something = forms.CharField(required=False) model_to_form = ((get_model_attr, 'something'),) form_to_model = (('something', get_model_attr),) fake_mapper = Mapper(FakeFormWithCallable) fake_model = FakeModel() fake_model.database = fake_model_value fake_form_data = fake_mapper.get_form_data(fake_model) self.assertEqual( fake_form_data['something'], fake_model_value )