def save(self, role): invention = models.Invention.objects.create( author=role, name=self.cleaned_data['name'], hash=uuid4().hex, base_coded=self.cleaned_data['base_coded'], base=translate(self.cleaned_data['base_coded']).capitalize(), change_coded=self.cleaned_data['change_coded'], change=translate(self.cleaned_data['change_coded']).capitalize(), ) return invention
def clean_base_coded(self): self.cleaned_data['base_coded'] = self.cleaned_data['base_coded'].strip() for c in self.cleaned_data['base_coded']: if c not in 'нНб': raise forms.ValidationError('Основа должна состоять из символов н, Н, б.') if self.cleaned_data['base_coded'].startswith('бб'): raise forms.ValidationError('Основа не может начинаться с "бб"') if self.cleaned_data['base_coded'].endswith('бб'): raise forms.ValidationError('Основа не может заканчиваться на "бб"') try: self.cleaned_data['base'] = translate(self.cleaned_data['base_coded']).capitalize() return self.cleaned_data['base_coded'] except ValueError: raise forms.ValidationError('Основа не распознана')
def clean_change_coded(self): self.cleaned_data['change_coded'] = self.cleaned_data['change_coded'].strip() for c in self.cleaned_data['change_coded']: if c not in 'бЗзКкСсЖж': raise forms.ValidationError('Изменение должно состоять из символов б, З, з, К, к, С, с, Ж, ж.') if self.cleaned_data['change_coded'].startswith('бб'): raise forms.ValidationError('Изменение не может начинаться с "бб"') if self.cleaned_data['change_coded'].endswith('бб'): raise forms.ValidationError('Изменение не может заканчиваться на "бб"') try: self.cleaned_data['change'] = translate(self.cleaned_data['change_coded']).capitalize() return self.cleaned_data['change_coded'] except ValueError: raise forms.ValidationError('Изменение не распознано')
def test_translate(): assert translate('нН') == 'А' assert translate('бнНб') == ' А ' assert translate('ннбНнНн') == 'ИЦ' assert translate('нНббнН') == 'А А'