Coverage for users/api/serializers_/nested.py: 77%

20 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-10-10 18:35 +0000

1from drf_spectacular.types import OpenApiTypes 

2from drf_spectacular.utils import extend_schema_field 

3 

4from netbox.api.serializers import WritableNestedSerializer 

5from users import models 

6 

7__all__ = ( 

8 'NestedGroupSerializer', 

9 'NestedUserSerializer', 

10) 

11 

12 

13class NestedGroupSerializer(WritableNestedSerializer): 

14 

15 class Meta: 

16 model = models.Group 

17 fields = ['id', 'url', 'display_url', 'display', 'name'] 

18 ref_name = 'NestedGroup' 

19 

20 

21class NestedUserSerializer(WritableNestedSerializer): 

22 

23 class Meta: 

24 model = models.User 

25 fields = ['id', 'url', 'display_url', 'display', 'username'] 

26 ref_name = 'NestedUser' 

27 

28 @extend_schema_field(OpenApiTypes.STR) 

29 def get_display(self, obj): 

30 if full_name := obj.get_full_name(): 

31 return f"{obj.username} ({full_name})" 

32 return obj.username