def test_set_standard_field_with_single_lang(self): form_mixin = AttributeFormMixin() form_mixin.project = self.project form_mixin.fields = { 'building': ChoiceField(choices=(('barn', 'Barn'), ('house', 'House'))) } questionnaire = q_factories.QuestionnaireFactory(project=self.project) question = q_factories.QuestionFactory.create( type='S1', name='building', questionnaire=questionnaire, label='Name') q_factories.QuestionOptionFactory(question=question, name='barn', label='Barn', index=0) q_factories.QuestionOptionFactory(question=question, name='house', label='House', index=1) form_mixin.set_standard_field('building', empty_choice='Select house type') widget = form_mixin.fields['building'].widget assert isinstance(widget, XLangSelect) is True assert widget.choices == [('', 'Select house type'), ('barn', 'Barn'), ('house', 'House')] assert widget.xlang_labels == {}
def test_init_with_form(self): project = ProjectFactory.create() questionnaire = q_factories.QuestionnaireFactory(project=project) q_factories.QuestionFactory.create( name='tenure_type', questionnaire=questionnaire, label={'en': 'Type', 'de': 'Typ'}) form = forms.TenureRelationshipEditForm(project) assert hasattr(form.fields['tenure_type'], 'labels_xlang') is True
def test_init_with_questionnaire(self): project = ProjectFactory.create() questionnaire = q_factories.QuestionnaireFactory(project=project) q_factories.QuestionFactory.create( name='party_type', questionnaire=questionnaire, label={'en': 'Type', 'de': 'Typ'}) q_factories.QuestionFactory.create( name='party_name', questionnaire=questionnaire, label={'en': 'Name', 'de': 'Name'}) form = forms.PartyForm(project) assert hasattr(form.fields['name'], 'labels_xlang') is True assert hasattr(form.fields['type'], 'labels_xlang') is True
def test_set_standard_field_no_question(self): form_mixin = AttributeFormMixin() form_mixin.project = self.project form_mixin.fields = {'name': CharField()} questionnaire = q_factories.QuestionnaireFactory(project=self.project) q_factories.QuestionFactory.create(name='party_name', questionnaire=questionnaire, label={ 'en': 'Name', 'de': 'Name' }) form_mixin.set_standard_field('name', ) assert hasattr(form_mixin.fields['name'], 'labels_xlang') is False
def test_set_standard_field_set_field_name(self): form_mixin = AttributeFormMixin() form_mixin.project = self.project form_mixin.fields = {'name': CharField()} questionnaire = q_factories.QuestionnaireFactory(project=self.project) q_factories.QuestionFactory.create(name='party_name', questionnaire=questionnaire, label={ 'en': 'Name', 'de': 'Name' }) form_mixin.set_standard_field('party_name', field_name='name') assert 'en="Name"' in form_mixin.fields['name'].labels_xlang assert 'de="Name"' in form_mixin.fields['name'].labels_xlang
def test_set_standard_field_with_options(self): form_mixin = AttributeFormMixin() form_mixin.project = self.project form_mixin.fields = { 'building': ChoiceField(choices=(('barn', 'Barn'), ('house', 'House'))) } questionnaire = q_factories.QuestionnaireFactory(project=self.project, default_language='de') question = q_factories.QuestionFactory.create( type='S1', name='building', questionnaire=questionnaire, label={ 'en': 'Name', 'de': 'Name' }) q_factories.QuestionOptionFactory(question=question, name='barn', label={ 'de': 'Scheune', 'en': 'Barn' }, index=0) q_factories.QuestionOptionFactory(question=question, name='house', label={ 'de': 'Haus', 'en': 'Haus' }, index=1) form_mixin.set_standard_field('building') widget = form_mixin.fields['building'].widget assert isinstance(widget, XLangSelect) is True assert widget.choices == [('barn', 'Scheune'), ('house', 'Haus')] assert widget.xlang_labels == { 'barn': { 'de': 'Scheune', 'en': 'Barn' }, 'house': { 'de': 'Haus', 'en': 'Haus' } }