def test_user_list_serializer_none_data() -> None: serializer = UserListSerializer(data=None) assert not serializer.is_valid() assert serializer.validated_data == {} assert serializer.data == {} assert "non_field_errors" in serializer.errors assert serializer.errors["non_field_errors"][0].code == "null"
def test_user_list_serializer_valid() -> None: input_data = { "first_name": "Karol", "last_name": "Guzikowski", } serializer = UserListSerializer(data=input_data) assert serializer.is_valid() assert serializer.validated_data == input_data assert serializer.data == input_data
def test_user_list_serializer_not_valid_missing_field() -> None: input_data = { "last_name": "Guzikowski", } serializer = UserListSerializer(data=input_data) assert not serializer.is_valid() assert serializer.validated_data == {} assert serializer.data == input_data assert "first_name" in serializer.errors assert serializer.errors["first_name"][0].code == "required"
class CompanyUpdateSerializer(serializers.ModelSerializer): """Serializer used when we want to update Company.""" localizations = AddressSerializer(many=True, required=False, write_only=True) roles = RoleSerializer(many=True, required=False, write_only=True) staff = EmployeeSerializer(many=True, required=False, write_only=True) owners = UserListSerializer(many=True, required=False, write_only=True) class Meta: model = Company fields = [ "status", "name", "short_name", "description", "profile_image", "owners", "staff", "roles", "localizations", "nip", ] extra_kwargs = { "status": {"required": False, "write_only": True}, "name": {"required": False, "write_only": True}, "short_name": {"required": False, "write_only": True}, "description": {"required": False, "write_only": True}, "profile_image": {"required": False, "write_only": True}, "owners": {"required": False, "write_only": True}, "nip": {"required": False, "write_only": True}, }
class CompanyDetailSerializer(serializers.ModelSerializer): """Serializer used when we want to get Company details.""" localizations = AddressSerializer(many=True) roles = RoleSerializer(many=True, required=False) staff = EmployeeSerializer(many=True, required=False) owners = UserListSerializer(many=True, read_only=True) # for the creation process # a initial owner that creates company creator = serializers.IntegerField(write_only=True, required=True) class Meta: model = Company fields = [ "id", "status", "name", "short_name", "description", "profile_image", "owners", "staff", "roles", "localizations", "nip", "active", "confirmed", # for the creation process "creator", ] extra_kwargs = { "id": {"required": False, "read_only": True}, "status": {"required": False}, "name": {"required": True}, "short_name": {"required": False}, "description": {"required": True}, "profile_image": {"required": False}, "owners": {"required": True}, "nip": {"required": True}, "active": {"read_only": True, "required": False}, "confirmed": {"read_only": True, "required": False}, } def create(self, validated_data): company_data = validated_data print(company_data) # user = User.objects.create(**validated_data) # Profile.objects.create(user=user, **profile_data) return None
class EmployeeSerializer(serializers.ModelSerializer): """Serializer for Address model.""" roles = RoleSerializer(many=True) user = UserListSerializer(many=False) class Meta: model = Employee fields = ["user", "roles"] def to_representation(self, instance): ret = super().to_representation(instance) final = {**ret["user"], "roles": ret["roles"]} return final
def test_user_list_serializer_default_data() -> None: data = UserListSerializer().data assert data["first_name"] == "" assert data["last_name"] == "" assert data["profile_image"] is None
def test_user_list_serializer_contains_expected_fields(user: User) -> None: serializer = UserListSerializer(user) data = set(serializer.fields.keys()) expected = {"id", "first_name", "last_name", "profile_image"} assert data == expected