6
6
from django .template import defaultfilters
7
7
8
8
from dynamic_preferences import serializers
9
- from .test_app .models import BlogEntry
9
+ from .test_app .models import BlogEntry , BlogEntryWithNonIntPk
10
10
11
11
12
12
class TestSerializers (TestCase ):
@@ -169,7 +169,7 @@ def test_date_deserialization(self):
169
169
170
170
with self .assertRaises (s .exception ):
171
171
s .deserialize ('Invalid date string' )
172
-
172
+
173
173
def test_datetime_serialization (self ):
174
174
s = serializers .DateTimeSerializer
175
175
@@ -239,6 +239,11 @@ def setUp(self):
239
239
BlogEntry (title = 'This is a test' , content = 'Hello World' ),
240
240
BlogEntry (title = 'This is only a test' , content = 'Hello World' ),
241
241
])
242
+ BlogEntryWithNonIntPk .objects .bulk_create ([
243
+ BlogEntryWithNonIntPk (title = 'This is a test' , content = 'Hello World' ),
244
+ BlogEntryWithNonIntPk (title = 'This is only a test' , content = 'Hello World' ),
245
+
246
+ ])
242
247
243
248
def test_model_multiple_serialization (self ):
244
249
s = serializers .ModelMultipleSerializer (BlogEntry )
@@ -250,11 +255,32 @@ def test_model_multiple_deserialization(self):
250
255
s = serializers .ModelMultipleSerializer (BlogEntry )
251
256
blog_entries = BlogEntry .objects .all ()
252
257
pks = s .separator .join (map (str , sorted (list (blog_entries .values_list ('pk' , flat = True )))))
253
-
254
258
self .assertEqual (list (s .deserialize (pks )), list (blog_entries ))
255
259
256
260
def test_model_multiple_single_serialization (self ):
257
261
s = serializers .ModelMultipleSerializer (BlogEntry )
258
262
blog_entry = BlogEntry .objects .all ().first ()
259
263
260
264
self .assertEqual (s .serialize (blog_entry ), s .separator .join (map (str , [blog_entry .pk ])))
265
+
266
+
267
+ def test_model_multiple_serialization_with_non_int_pk (self ):
268
+ s = serializers .ModelMultipleSerializer (BlogEntryWithNonIntPk )
269
+ blog_entries = BlogEntryWithNonIntPk .objects .all ()
270
+
271
+ self .assertEqual (s .serialize (blog_entries ), s .separator .join (map (str , sorted (list (blog_entries .values_list ('pk' , flat = True ))))))
272
+
273
+ def test_model_multiple_deserialization_with_non_int_pk (self ):
274
+ s = serializers .ModelMultipleSerializer (BlogEntryWithNonIntPk )
275
+ blog_entries = BlogEntryWithNonIntPk .objects .all ()
276
+ pks = s .separator .join (map (str , sorted (list (blog_entries .values_list ('pk' , flat = True )))))
277
+
278
+ deserialized_ids = sorted ([instance .pk for instance in s .deserialize (pks )])
279
+ blog_entries_ids = sorted ([entry .pk for entry in blog_entries ])
280
+ self .assertEqual (deserialized_ids , blog_entries_ids )
281
+
282
+ def test_model_multiple_single_serialization_with_non_int_pk (self ):
283
+ s = serializers .ModelMultipleSerializer (BlogEntryWithNonIntPk )
284
+ blog_entry = BlogEntryWithNonIntPk .objects .all ().first ()
285
+
286
+ self .assertEqual (s .serialize (blog_entry ), s .separator .join (map (str , [blog_entry .pk ])))
0 commit comments