示例#1
0
文件: forms.py 项目: Hyyudu/Cetaganda
    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
示例#2
0
文件: forms.py 项目: Hyyudu/Cetaganda
    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('Основа не распознана')
示例#3
0
文件: forms.py 项目: Hyyudu/Cetaganda
    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('Изменение не распознано')
示例#4
0
def test_translate():
    assert translate('нН') == 'А'
    assert translate('бнНб') == ' А '
    assert translate('ннбНнНн') == 'ИЦ'
    assert translate('нНббнН') == 'А А'