django-modeltranslation/modeltranslation/tests/translation.py

155 lines
4.9 KiB
Python
Raw Normal View History

# -*- coding: utf-8 -*-
from django.utils.translation import ugettext_lazy
from modeltranslation.translator import translator, TranslationOptions
from modeltranslation.tests.models import (
2013-02-13 10:59:11 +00:00
TestModel, FallbackModel, FallbackModel2, FileFieldsModel, OtherFieldsModel, DescriptorModel,
AbstractModelA, AbstractModelB, Slugged, MetaData, Displayable, Page, RichText, RichTextPage,
MultitableModelA, MultitableModelB, MultitableModelC, ManagerTestModel, CustomManagerTestModel,
CustomManager2TestModel, GroupFieldsetsModel, NameModel)
class TestTranslationOptions(TranslationOptions):
fields = ('title', 'text', 'url', 'email',)
translator.register(TestModel, TestTranslationOptions)
########## Fallback values testing
2012-11-06 19:00:31 +00:00
class FallbackModelTranslationOptions(TranslationOptions):
fields = ('title', 'text', 'url', 'email',)
fallback_values = "fallback"
2012-11-06 19:00:31 +00:00
translator.register(FallbackModel, FallbackModelTranslationOptions)
2012-11-06 19:00:31 +00:00
class FallbackModel2TranslationOptions(TranslationOptions):
fields = ('title', 'text', 'url', 'email',)
fallback_values = {'text': ugettext_lazy('Sorry, translation is not available.')}
2012-11-06 19:00:31 +00:00
translator.register(FallbackModel2, FallbackModel2TranslationOptions)
########## File fields testing
2012-11-06 19:00:31 +00:00
class FileFieldsModelTranslationOptions(TranslationOptions):
fields = ('title', 'file', 'image',)
2012-11-06 19:00:31 +00:00
translator.register(FileFieldsModel, FileFieldsModelTranslationOptions)
########## Custom fields testing
2012-11-11 14:52:12 +00:00
class OtherFieldsModelTranslationOptions(TranslationOptions):
# fields = ('int', 'boolean', 'nullboolean', 'csi', 'float', 'decimal',
# 'ip', 'genericip')
fields = ('int', 'boolean', 'nullboolean', 'csi', 'float', 'decimal',
'ip', 'date', 'datetime', 'time',)
2012-11-11 14:52:12 +00:00
translator.register(OtherFieldsModel, OtherFieldsModelTranslationOptions)
2013-02-13 10:59:11 +00:00
class DescriptorModelTranslationOptions(TranslationOptions):
fields = ('trans',)
translator.register(DescriptorModel, DescriptorModelTranslationOptions)
########## Multitable inheritance testing
2012-11-06 19:00:31 +00:00
class MultitableModelATranslationOptions(TranslationOptions):
fields = ('titlea',)
2012-11-06 19:00:31 +00:00
translator.register(MultitableModelA, MultitableModelATranslationOptions)
2012-11-06 19:00:31 +00:00
class MultitableModelBTranslationOptions(TranslationOptions):
fields = ('titleb',)
translator.register(MultitableModelB, MultitableModelBTranslationOptions)
2012-11-06 19:00:31 +00:00
class MultitableModelCTranslationOptions(TranslationOptions):
fields = ('titlec',)
2012-11-06 19:00:31 +00:00
translator.register(MultitableModelC, MultitableModelCTranslationOptions)
########## Abstract inheritance testing
2012-11-06 19:00:31 +00:00
class AbstractModelATranslationOptions(TranslationOptions):
fields = ('titlea',)
2012-11-06 19:00:31 +00:00
translator.register(AbstractModelA, AbstractModelATranslationOptions)
2012-11-06 19:00:31 +00:00
class AbstractModelBTranslationOptions(TranslationOptions):
fields = ('titleb',)
2012-11-06 19:00:31 +00:00
translator.register(AbstractModelB, AbstractModelBTranslationOptions)
2012-11-11 14:57:44 +00:00
########## Fields inheritance testing
class SluggedTranslationOptions(TranslationOptions):
fields = ('slug',)
class MetaDataTranslationOptions(TranslationOptions):
fields = ('keywords',)
class RichTextTranslationOptions(TranslationOptions):
fields = ('content',)
class PageTranslationOptions(TranslationOptions):
fields = ('title',)
# BasePage left unregistered intentionally.
translator.register(Slugged, SluggedTranslationOptions)
translator.register(MetaData, MetaDataTranslationOptions)
translator.register(RichText, RichTextTranslationOptions)
translator.register(Displayable)
translator.register(Page, PageTranslationOptions)
translator.register(RichTextPage)
########## Manager testing
2012-11-11 14:57:44 +00:00
class ManagerTestModelTranslationOptions(TranslationOptions):
fields = ('title', 'visits')
translator.register(ManagerTestModel, ManagerTestModelTranslationOptions)
class CustomManagerTestModelTranslationOptions(TranslationOptions):
fields = ('title',)
translator.register([CustomManagerTestModel, CustomManager2TestModel],
CustomManagerTestModelTranslationOptions)
########## TranslationOptions field inheritance testing
2012-11-15 19:34:20 +00:00
class FieldInheritanceATranslationOptions(TranslationOptions):
fields = ['titlea']
2012-11-15 19:34:20 +00:00
class FieldInheritanceBTranslationOptions(FieldInheritanceATranslationOptions):
fields = ['titleb']
class FieldInheritanceCTranslationOptions(FieldInheritanceBTranslationOptions):
fields = ['titlec']
class FieldInheritanceDTranslationOptions(FieldInheritanceBTranslationOptions):
fields = ('titled',)
class FieldInheritanceETranslationOptions(FieldInheritanceCTranslationOptions,
FieldInheritanceDTranslationOptions):
fields = ('titlee',)
########## Admin testing
class GroupFieldsetsTranslationOptions(TranslationOptions):
fields = ('title', 'text',)
translator.register(GroupFieldsetsModel, GroupFieldsetsTranslationOptions)
class NameTranslationOptions(TranslationOptions):
fields = ('firstname', 'lastname',)
translator.register(NameModel, NameTranslationOptions)