Пример #1
0
    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)
Пример #2
0
    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
        )