# Test access to max_length while still providing full backwards compatibility # with legacy maxlength attribute. """ Don't print out the deprecation warnings during testing. >>> from warnings import filterwarnings >>> filterwarnings("ignore") # legacy_maxlength function >>> from django.utils.maxlength import legacy_maxlength >>> legacy_maxlength(None, None) >>> legacy_maxlength(10, None) 10 >>> legacy_maxlength(None, 10) 10 >>> legacy_maxlength(10, 12) Traceback (most recent call last): ... TypeError: Field cannot take both the max_length argument and the legacy maxlength argument. >>> legacy_maxlength(0, 10) Traceback (most recent call last): ... TypeError: Field cannot take both the max_length argument and the legacy maxlength argument. >>> legacy_maxlength(0, None) 0 >>> legacy_maxlength(None, 0) 0 #=============================================================================== # Fields #=============================================================================== # Set up fields >>> from django.db.models import fields >>> new = fields.Field(max_length=15) >>> old = fields.Field(maxlength=10) # Ensure both max_length and legacy maxlength are not able to both be specified >>> fields.Field(maxlength=10, max_length=15) Traceback (most recent call last): ... TypeError: Field cannot take both the max_length argument and the legacy maxlength argument. # Test max_length >>> new.max_length 15 >>> old.max_length 10 # Test accessing maxlength >>> new.maxlength 15 >>> old.maxlength 10 # Test setting maxlength >>> new.maxlength += 1 >>> old.maxlength += 1 >>> new.max_length 16 >>> old.max_length 11 # SlugField __init__ passes through max_length so test that too >>> fields.SlugField('new', max_length=15).max_length 15 >>> fields.SlugField('empty').max_length 50 >>> fields.SlugField('old', maxlength=10).max_length 10 #=============================================================================== # (old)forms #=============================================================================== >>> from django import oldforms # Test max_length attribute >>> oldforms.TextField('new', max_length=15).render('') u'' >>> oldforms.IntegerField('new', max_length=15).render('') u'' >>> oldforms.SmallIntegerField('new', max_length=15).render('') u'' >>> oldforms.PositiveIntegerField('new', max_length=15).render('') u'' >>> oldforms.PositiveSmallIntegerField('new', max_length=15).render('') u'' >>> oldforms.DatetimeField('new', max_length=15).render('') u'' >>> oldforms.EmailField('new', max_length=15).render('') u'' >>> oldforms.EmailField('new').render('') u'' >>> oldforms.URLField('new', max_length=15).render('') u'' >>> oldforms.URLField('new').render('') u'' >>> oldforms.IPAddressField('new', max_length=15).render('') u'' >>> oldforms.IPAddressField('new').render('') u'' >>> oldforms.CommaSeparatedIntegerField('new', max_length=15).render('') u'' # Test legacy maxlength attribute >>> oldforms.TextField('old', maxlength=10).render('') u'' >>> oldforms.IntegerField('old', maxlength=10).render('') u'' >>> oldforms.SmallIntegerField('old', maxlength=10).render('') u'' >>> oldforms.PositiveIntegerField('old', maxlength=10).render('') u'' >>> oldforms.PositiveSmallIntegerField('old', maxlength=10).render('') u'' >>> oldforms.DatetimeField('old', maxlength=10).render('') u'' >>> oldforms.EmailField('old', maxlength=10).render('') u'' >>> oldforms.URLField('old', maxlength=10).render('') u'' >>> oldforms.IPAddressField('old', maxlength=10).render('') u'' >>> oldforms.CommaSeparatedIntegerField('old', maxlength=10).render('') u'' """ if __name__ == "__main__": import doctest doctest.testmod()