5
5
import os .path
6
6
from mock import Mock , patch
7
7
from distutils .version import StrictVersion
8
+ try :
9
+ from unittest .case import SkipTest
10
+ except ImportError :
11
+ from unittest2 .case import SkipTest
8
12
9
13
from django .core .urlresolvers import RegexURLResolver , RegexURLPattern
10
14
from django .conf import settings
@@ -485,7 +489,8 @@ class SerializedAPI(ListCreateAPIView):
485
489
delta = datetime .timedelta (seconds = 1 )
486
490
self .assertAlmostEqual (value , datetime .datetime .now (), delta = delta )
487
491
488
- def test_get_models_ordering (self ):
492
+ def test_get_models_ordering_drf2 (self ):
493
+
489
494
class SerializedAPI (ListCreateAPIView ):
490
495
serializer_class = CommentSerializer
491
496
@@ -501,6 +506,35 @@ class SerializedAPI(ListCreateAPIView):
501
506
["email" , "content" , "created" ],
502
507
list (models ['CommentSerializer' ]['properties' ].keys ()))
503
508
509
+ def test_get_models_ordering_drf3 (self ):
510
+ if StrictVersion (rest_framework .VERSION ) < StrictVersion ('3.0' ):
511
+ raise SkipTest ('Only for DRF>=3.0' )
512
+
513
+ from rest_framework .fields import CurrentUserDefault
514
+
515
+ class CommentSerializer (serializers .Serializer ):
516
+ email = serializers .EmailField ()
517
+ content = serializers .CharField (max_length = 200 )
518
+ created = serializers .DateTimeField (default = datetime .datetime .now )
519
+ owner = serializers .PrimaryKeyRelatedField (
520
+ default = CurrentUserDefault (),
521
+ queryset = User .objects .all ())
522
+
523
+ class SerializedAPI (ListCreateAPIView ):
524
+ serializer_class = CommentSerializer
525
+
526
+ urlparser = UrlParser ()
527
+ url_patterns = patterns ('' , url (r'my-api/' , SerializedAPI .as_view ()))
528
+ apis = urlparser .get_apis (url_patterns )
529
+
530
+ docgen = DocumentationGenerator ()
531
+ models = docgen .get_models (apis )
532
+
533
+ self .assertIn ('CommentSerializer' , models )
534
+ self .assertEqual (
535
+ ["email" , "content" , "created" , "owner" ],
536
+ list (models ['CommentSerializer' ]['properties' ].keys ()))
537
+
504
538
def test_get_serializer_set (self ):
505
539
class SerializedAPI (ListCreateAPIView ):
506
540
serializer_class = CommentSerializer
0 commit comments