Merge lp:~james-w/django-factory/fix-textfield-generator into lp:django-factory

Proposed by James Westby
Status: Merged
Merged at revision: 58
Proposed branch: lp:~james-w/django-factory/fix-textfield-generator
Merge into: lp:django-factory
Diff against target: 59 lines (+14/-2)
4 files modified
README (+2/-1)
django_factory/generators.py (+1/-1)
django_project/factory_tests/models.py (+5/-0)
django_project/factory_tests/tests.py (+6/-0)
To merge this branch: bzr merge lp:~james-w/django-factory/fix-textfield-generator
Reviewer Review Type Date Requested Status
Anthony Lenton (community) Approve
James Westby Pending
Review via email: mp+91943@code.launchpad.net

Description of the change

Hi,

This fixes max_length=None as found by Anthony.

Thanks,

James

To post a comment you must log in.
Revision history for this message
Anthony Lenton (elachuni) wrote :

Looks fine, thanks James!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'README'
2--- README 2012-01-12 15:46:26 +0000
3+++ README 2012-02-07 23:04:22 +0000
4@@ -352,7 +352,8 @@
5 0.8
6 ```
7
8-
9+ * TextFields that have `max_length=None` no longer crash the generator
10+ (regression due to the `max_length` change in 0.7)
11
12 0.7
13 ```
14
15=== modified file 'django_factory/generators.py'
16--- django_factory/generators.py 2012-01-12 15:03:43 +0000
17+++ django_factory/generators.py 2012-02-07 23:04:22 +0000
18@@ -36,7 +36,7 @@
19 """
20 value = factory.getUniqueUnicode(prefix=field.name)
21 max_length = getattr(field, "max_length", sys.maxint)
22- if len(value) > max_length:
23+ if max_length is not None and len(value) > max_length:
24 value = value[-max_length:]
25 return value
26
27
28=== modified file 'django_project/factory_tests/models.py'
29--- django_project/factory_tests/models.py 2012-01-12 15:41:57 +0000
30+++ django_project/factory_tests/models.py 2012-02-07 23:04:22 +0000
31@@ -94,6 +94,11 @@
32 text_field = models.TextField(max_length=100)
33
34
35+class ModelWithNoneMaxLengthTextField(models.Model):
36+
37+ text_field = models.TextField(max_length=None)
38+
39+
40 class ModelWithSlugField(models.Model):
41
42 slug_field = models.SlugField(max_length=100)
43
44=== modified file 'django_project/factory_tests/tests.py'
45--- django_project/factory_tests/tests.py 2012-01-12 15:41:57 +0000
46+++ django_project/factory_tests/tests.py 2012-02-07 23:04:22 +0000
47@@ -55,6 +55,12 @@
48 generated = generators.generate_unicode(field, self.factory)
49 self.assertEquals(field.max_length, len(generated))
50
51+ def test_generate_unicode_handles_None_max_length(self):
52+ field = test_models.ModelWithNoneMaxLengthTextField._meta.get_field(
53+ 'text_field')
54+ generated = generators.generate_unicode(field, self.factory)
55+ self.assertIsInstance(generated, unicode)
56+
57 def test_generate_int_generates_int(self):
58 generated = generators.generate_int(self.field, self.factory)
59 self.assertIsInstance(generated, int)

Subscribers

People subscribed via source and target branches

to all changes: