1010from django .contrib .auth .models import User
1111from django .contrib .contenttypes .models import ContentType
1212import bs4
13- from test_app .models import TestModel , TestForeignKey , TestM2M
13+ from test_app .models import (
14+ TestModel , TestForeignKey , TestM2M ,
15+ TestBigIntModel , TestBigIntForeignKey , TestBigIntM2M ,
16+ TestUUIDModel , TestUUIDForeignKey , TestUUIDM2M
17+ )
1418from easyaudit .models import CRUDEvent
1519from easyaudit .middleware .easyaudit import set_current_user , clear_request
1620
2327
2428@override_settings (TEST = True )
2529class TestAuditModels (TestCase ):
30+ Model = TestModel
31+ FKModel = TestForeignKey
32+ M2MModel = TestM2M
2633
2734 def test_create_model (self ):
28- obj = TestModel .objects .create ()
29- self .assertEqual (obj .id , 1 )
35+ obj = self .Model .objects .create ()
3036 crud_event_qs = CRUDEvent .objects .filter (object_id = obj .id , content_type = ContentType .objects .get_for_model (obj ))
3137 self .assertEqual (1 , crud_event_qs .count ())
3238 crud_event = crud_event_qs [0 ]
3339 data = json .loads (crud_event .object_json_repr )[0 ]
3440 self .assertEqual (data ['fields' ]['name' ], obj .name )
3541
3642 def test_fk_model (self ):
37- obj = TestModel .objects .create ()
38- obj_fk = TestForeignKey (name = 'test' , test_fk = obj )
43+ obj = self . Model .objects .create ()
44+ obj_fk = self . FKModel (name = 'test' , test_fk = obj )
3945 obj_fk .save ()
4046 crud_event = CRUDEvent .objects .filter (object_id = obj_fk .id , content_type = ContentType .objects .get_for_model (obj_fk ))[0 ]
4147 data = json .loads (crud_event .object_json_repr )[0 ]
42- self .assertEqual (data ['fields' ]['test_fk' ], obj .id )
48+ self .assertEqual (str ( data ['fields' ]['test_fk' ]), str ( obj .id ) )
4349
4450 def test_m2m_model (self ):
45- obj = TestModel .objects .create ()
46- obj_m2m = TestM2M (name = 'test' )
51+ obj = self . Model .objects .create ()
52+ obj_m2m = self . M2MModel (name = 'test' )
4753 obj_m2m .save ()
4854 obj_m2m .test_m2m .add (obj )
4955 crud_event = CRUDEvent .objects .filter (object_id = obj_m2m .id , content_type = ContentType .objects .get_for_model (obj_m2m ))[0 ]
5056 data = json .loads (crud_event .object_json_repr )[0 ]
51- self .assertEqual (data ['fields' ]['test_m2m' ], [obj .id ])
57+ self .assertEqual ([ str ( d ) for d in data ['fields' ]['test_m2m' ]] , [str ( obj .id ) ])
5258
5359 @override_settings (DJANGO_EASY_AUDIT_CRUD_EVENT_NO_CHANGED_FIELDS_SKIP = True )
5460 def test_update_skip_no_changed_fields (self ):
55- obj = TestModel .objects .create ()
61+ obj = self . Model .objects .create ()
5662 crud_event_qs = CRUDEvent .objects .filter (object_id = obj .id , content_type = ContentType .objects .get_for_model (obj ))
5763 self .assertEqual (1 , crud_event_qs .count ())
5864 obj .name = 'changed name'
@@ -62,7 +68,7 @@ def test_update_skip_no_changed_fields(self):
6268 self .assertIn ('name' , last_change .changed_fields )
6369
6470 def test_update (self ):
65- obj = TestModel .objects .create ()
71+ obj = self . Model .objects .create ()
6672 crud_event_qs = CRUDEvent .objects .filter (object_id = obj .id , content_type = ContentType .objects .get_for_model (obj ))
6773 self .assertEqual (1 , crud_event_qs .count ())
6874 obj .name = 'changed name'
@@ -73,18 +79,30 @@ def test_update(self):
7379
7480 @override_settings (DJANGO_EASY_AUDIT_CRUD_EVENT_NO_CHANGED_FIELDS_SKIP = True )
7581 def test_fake_update_skip_no_changed_fields (self ):
76- obj = TestModel .objects .create ()
82+ obj = self . Model .objects .create ()
7783 crud_event_qs = CRUDEvent .objects .filter (object_id = obj .id , content_type = ContentType .objects .get_for_model (obj ))
7884 obj .save ()
7985 self .assertEqual (1 , crud_event_qs .count ())
8086
8187 def test_fake_update (self ):
82- obj = TestModel .objects .create ()
88+ obj = self . Model .objects .create ()
8389 crud_event_qs = CRUDEvent .objects .filter (object_id = obj .id , content_type = ContentType .objects .get_for_model (obj ))
8490 obj .save ()
8591 self .assertEqual (2 , crud_event_qs .count ())
8692
8793
94+ class TestAuditUUIDModels (TestAuditModels ):
95+ Model = TestUUIDModel
96+ FKModel = TestUUIDForeignKey
97+ M2MModel = TestUUIDM2M
98+
99+
100+ class TestAuditBigIntModels (TestAuditModels ):
101+ Model = TestBigIntModel
102+ FKModel = TestBigIntForeignKey
103+ M2MModel = TestBigIntM2M
104+
105+
88106@override_settings (TEST = True )
89107class TestMiddleware (TestCase ):
90108 def _setup_user (self , email , password ):
0 commit comments