File tree Expand file tree Collapse file tree 4 files changed +32
-16
lines changed Expand file tree Collapse file tree 4 files changed +32
-16
lines changed Original file line number Diff line number Diff line change 22
33### Unreleased
44
5+ ### 0.14.1
6+
7+ - fix(drf-serializer): IndexError on missing Meta attr, closes #34
8+
59### 0.14.0
610
711- Remove ` field-boolean-null `
Original file line number Diff line number Diff line change @@ -64,7 +64,7 @@ def _get_line(self) -> Optional[int]:
6464 ),
6565 key = lambda a : a [1 ].find ("class Meta" ),
6666 )[0 ][0 ]
67- except StopIteration :
67+ except ( StopIteration , IndexError ) :
6868 return None
6969
7070
Original file line number Diff line number Diff line change @@ -9,6 +9,10 @@ class Meta:
99 read_only_fields : list = []
1010
1111
12+ class InheritedArticleSerializer (ArticleSerializer ):
13+ pass
14+
15+
1216class AuthorSerializer (serializers .ModelSerializer ):
1317 first_name = serializers .CharField ()
1418
@@ -17,6 +21,10 @@ class Meta:
1721 extra_kwargs = {"first_name" : {"read_only" : True }}
1822
1923
24+ class InheritedAuthorSerializer (AuthorSerializer ):
25+ pass
26+
27+
2028class DisableCheckSerializer (serializers .ModelSerializer ):
2129 first_name = serializers .CharField ()
2230
Original file line number Diff line number Diff line change 1515 ArticleSerializer ,
1616 AuthorSerializer ,
1717 DisableCheckSerializer ,
18+ InheritedArticleSerializer ,
19+ InheritedAuthorSerializer ,
1820)
1921
2022
@@ -37,25 +39,27 @@ def test_model_serializer_extra_kwargs(test_case):
3739
3840
3941def test_model_serializer_meta_attribute (test_case ):
40- messages = (
41- test_case .settings (
42- {
43- "checks" : [
44- {
45- "id" : CheckDRFSerializerMetaAttribute .Id .value ,
46- "attrs" : ["read_only_fields" ],
47- }
48- ]
49- }
50- )
51- .check (CheckDRFSerializerMetaAttribute )
52- .serializers (ArticleSerializer )
53- .run ()
54- )
42+ test_case .settings (
43+ {
44+ "checks" : [
45+ {
46+ "id" : CheckDRFSerializerMetaAttribute .Id .value ,
47+ "attrs" : ["read_only_fields" ],
48+ }
49+ ]
50+ }
51+ ).check (CheckDRFSerializerMetaAttribute )
52+
53+ messages = test_case .serializers (ArticleSerializer ).run ()
54+ assert not messages
55+ messages = test_case .serializers (InheritedArticleSerializer ).run ()
5556 assert not messages
5657 messages = test_case .serializers (AuthorSerializer ).run ()
5758 assert len (messages ) == 1
5859 assert messages [0 ].id == CheckDRFSerializerMetaAttribute .Id .name
60+ messages = test_case .serializers (InheritedAuthorSerializer ).run ()
61+ assert len (messages ) == 1
62+ assert messages [0 ].id == CheckDRFSerializerMetaAttribute .Id .name
5963
6064
6165def test_get_serializers_to_check ():
You can’t perform that action at this time.
0 commit comments