Merge lp:~ricardokirkner/django-adminaudit/1188250-getting-bigger into lp:django-adminaudit

Proposed by Ricardo Kirkner
Status: Merged
Approved by: Natalia Bidart
Approved revision: 57
Merged at revision: 52
Proposed branch: lp:~ricardokirkner/django-adminaudit/1188250-getting-bigger
Merge into: lp:django-adminaudit
Prerequisite: lp:~ricardokirkner/django-adminaudit/going-south
Diff against target: 127 lines (+83/-4)
4 files modified
adminaudit/migrations/0002_auto__chg_field_auditlog_username__chg_field_auditlog_representation__.py (+46/-0)
adminaudit/models.py (+3/-3)
adminaudit/tests.py (+33/-0)
setup.py (+1/-1)
To merge this branch: bzr merge lp:~ricardokirkner/django-adminaudit/1188250-getting-bigger
Reviewer Review Type Date Requested Status
Matias Bordese (community) Approve
Review via email: mp+168151@code.launchpad.net

Commit message

removed size constraints from username, model and representation fields

Description of the change

This branch removes size constraints on certain AuditLog columns. This should fix bug # when deployed.

As sqlite will happily ignore constraints, tests needed to be smarted about it. They are inspired by this post: http://stackoverflow.com/questions/8478054/django-model-charfield-max-length-does-not-work

To post a comment you must log in.
Revision history for this message
Matias Bordese (matiasb) wrote :

Looks good.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== added file 'adminaudit/migrations/0002_auto__chg_field_auditlog_username__chg_field_auditlog_representation__.py'
--- adminaudit/migrations/0002_auto__chg_field_auditlog_username__chg_field_auditlog_representation__.py 1970-01-01 00:00:00 +0000
+++ adminaudit/migrations/0002_auto__chg_field_auditlog_username__chg_field_auditlog_representation__.py 2013-06-07 19:09:29 +0000
@@ -0,0 +1,46 @@
1# -*- coding: utf-8 -*-
2import datetime
3from south.db import db
4from south.v2 import SchemaMigration
5from django.db import models
6
7
8class Migration(SchemaMigration):
9
10 def forwards(self, orm):
11
12 # Changing field 'AuditLog.username'
13 db.alter_column(u'adminaudit_auditlog', 'username', self.gf('django.db.models.fields.TextField')())
14
15 # Changing field 'AuditLog.representation'
16 db.alter_column(u'adminaudit_auditlog', 'representation', self.gf('django.db.models.fields.TextField')())
17
18 # Changing field 'AuditLog.model'
19 db.alter_column(u'adminaudit_auditlog', 'model', self.gf('django.db.models.fields.TextField')())
20
21 def backwards(self, orm):
22
23 # Changing field 'AuditLog.username'
24 db.alter_column(u'adminaudit_auditlog', 'username', self.gf('django.db.models.fields.CharField')(max_length=255))
25
26 # Changing field 'AuditLog.representation'
27 db.alter_column(u'adminaudit_auditlog', 'representation', self.gf('django.db.models.fields.CharField')(max_length=255))
28
29 # Changing field 'AuditLog.model'
30 db.alter_column(u'adminaudit_auditlog', 'model', self.gf('django.db.models.fields.CharField')(max_length=255))
31
32 models = {
33 u'adminaudit.auditlog': {
34 'Meta': {'object_name': 'AuditLog'},
35 'change': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
36 'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
37 u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
38 'model': ('django.db.models.fields.TextField', [], {}),
39 'representation': ('django.db.models.fields.TextField', [], {}),
40 'user_id': ('django.db.models.fields.IntegerField', [], {}),
41 'username': ('django.db.models.fields.TextField', [], {}),
42 'values': ('django.db.models.fields.TextField', [], {})
43 }
44 }
45
46 complete_apps = ['adminaudit']
0\ No newline at end of file47\ No newline at end of file
148
=== modified file 'adminaudit/models.py'
--- adminaudit/models.py 2012-08-21 17:39:18 +0000
+++ adminaudit/models.py 2013-06-07 19:09:29 +0000
@@ -12,11 +12,11 @@
12 Records of all changes made via Django admin interface.12 Records of all changes made via Django admin interface.
1313
14 """14 """
15 username = models.CharField(max_length=255)15 username = models.TextField()
16 user_id = models.IntegerField()16 user_id = models.IntegerField()
17 model = models.CharField(max_length=255)17 model = models.TextField()
18 change = models.CharField(max_length=100)18 change = models.CharField(max_length=100)
19 representation = models.CharField(max_length=255)19 representation = models.TextField()
20 values = models.TextField()20 values = models.TextField()
21 created_at = models.DateTimeField(auto_now_add=True)21 created_at = models.DateTimeField(auto_now_add=True)
2222
2323
=== modified file 'adminaudit/tests.py'
--- adminaudit/tests.py 2012-04-26 16:39:32 +0000
+++ adminaudit/tests.py 2013-06-07 19:09:29 +0000
@@ -44,6 +44,39 @@
44 self.client.login(username='test', password='test')44 self.client.login(username='test', password='test')
4545
4646
47class AuditLogTestCase(TestCase):
48 def make_log_data(self, **overrides):
49 data = {
50 'username': 'test',
51 'user_id': 1,
52 'model': 'model',
53 'change': 'change',
54 'representation': 'representation',
55 'values': 'values',
56 }
57 data.update(overrides)
58 return data
59
60 def assert_log_valid(self, data):
61 log = AuditLog(**data)
62 # force model validation
63 # full_clean raises a ValidationError if object doesn't validate with
64 # model.
65 log.full_clean()
66
67 def test_long_username(self):
68 data = self.make_log_data(username='a'*500)
69 self.assert_log_valid(data)
70
71 def test_long_model(self):
72 data = self.make_log_data(model='a'*500)
73 self.assert_log_valid(data)
74
75 def test_long_representation(self):
76 data = self.make_log_data(representation='a'*500)
77 self.assert_log_valid(data)
78
79
47class AuditAdminEmailReportTestCase(TestCase):80class AuditAdminEmailReportTestCase(TestCase):
4881
49 def create_and_log_in_user(self, **kwargs):82 def create_and_log_in_user(self, **kwargs):
5083
=== modified file 'setup.py'
--- setup.py 2013-06-07 19:09:29 +0000
+++ setup.py 2013-06-07 19:09:29 +0000
@@ -27,7 +27,7 @@
27setup(27setup(
28 # metadata28 # metadata
29 name='django-adminaudit',29 name='django-adminaudit',
30 version='0.3.4',30 version='0.4.0',
31 description="Extends Django's admin logging capabilities",31 description="Extends Django's admin logging capabilities",
32 url='https://launchpad.net/django-adminaudit',32 url='https://launchpad.net/django-adminaudit',
33 author='Łukasz Czyżykowski',33 author='Łukasz Czyżykowski',

Subscribers

People subscribed via source and target branches