def get_form(self, step=None, data=None, files=None): """ change the form instance dynamically from the data we entered at the previous step """ if step is None: step = self.steps.current if step == '1': prev_data = self.get_cleaned_data_for_step('0') service_name = str(prev_data.get('provider')).split('Service')[1] class_name = 'th_' + service_name.lower() + '.forms' form_name = service_name + 'ProviderForm' form_class = class_for_name(class_name, form_name) form = form_class(data) elif step == '2': step0_data = self.get_cleaned_data_for_step('0') form = ConsumerForm( data, initial={'provider': step0_data.get('provider')}) elif step == '3': prev_data = self.get_cleaned_data_for_step('2') service_name = str(prev_data.get('consumer')).split('Service')[1] class_name = 'th_' + service_name.lower() + '.forms' form_name = service_name + 'ConsumerForm' form_class = class_for_name(class_name, form_name) form = form_class(data) else: form = super(UserServiceWizard, self).get_form(step, data, files) return form
def test_class_for_name(self): service_name = 'Twitter' form_name = service_name + 'ProviderForm' class_name = 'th_' + service_name.lower() + '.forms' form_class = class_for_name(class_name, form_name) self.assertTrue(form_class, 'TwitterFormProvider')