diff --git a/lti_consumer/lti_1p1/consumer.py b/lti_consumer/lti_1p1/consumer.py
index f20c5712e78c7845be19a3c9ac1af9d42c1a7913..1290fc9861af67eade8626a8d43af11b44ee4e15 100644
--- a/lti_consumer/lti_1p1/consumer.py
+++ b/lti_consumer/lti_1p1/consumer.py
@@ -69,7 +69,7 @@ def parse_result_json(json_str):
     try:
         json_obj = json.loads(json_str)
     except (ValueError, TypeError) as err:
-        msg = f"Supplied JSON string in request body could not be decoded: {json_str}"
+        msg = f"Supplied JSON string in request body could not be decoded: {json_str!r}"
         log.error("[LTI] %s", msg)
         raise Lti1p1Error(msg) from err
 
@@ -87,7 +87,7 @@ def parse_result_json(json_str):
     # '@type' must be "Result"
     result_type = json_obj.get("@type")
     if result_type != "Result":
-        msg = f"JSON object does not contain correct @type attribute (should be 'Result', is z{result_type})"
+        msg = f"JSON object does not contain correct @type attribute (should be 'Result', is z{result_type!r})"
         log.error("[LTI] %s", msg)
         raise Lti1p1Error(msg)
 
diff --git a/lti_consumer/lti_1p3/extensions/rest_framework/serializers.py b/lti_consumer/lti_1p3/extensions/rest_framework/serializers.py
index f7dcd45a94053fbb5569725a103c91499e3b65bd..30afb794623f5709594836eda4619dee9b685377 100644
--- a/lti_consumer/lti_1p3/extensions/rest_framework/serializers.py
+++ b/lti_consumer/lti_1p3/extensions/rest_framework/serializers.py
@@ -32,7 +32,7 @@ class UsageKeyField(serializers.Field):
         try:
             return UsageKey.from_string(data)
         except InvalidKeyError as err:
-            raise serializers.ValidationError(f"Invalid usage key: {data}") from err
+            raise serializers.ValidationError(f"Invalid usage key: {data!r}") from err
 
 
 class LtiAgsLineItemSerializer(serializers.ModelSerializer):
diff --git a/lti_consumer/tests/unit/test_api.py b/lti_consumer/tests/unit/test_api.py
index be212bd1ef5d91d31ebb7f60f5d7e95cd944360a..888d229e04e6def90e1c685c6110839d01aacb9f 100644
--- a/lti_consumer/tests/unit/test_api.py
+++ b/lti_consumer/tests/unit/test_api.py
@@ -6,8 +6,12 @@ from unittest.mock import Mock, patch
 from Cryptodome.PublicKey import RSA
 from django.test.testcases import TestCase
 
-from lti_consumer.api import (_get_or_create_local_lti_config, get_lti_1p3_launch_info, get_lti_1p3_launch_start_url,
-                              get_lti_consumer)
+from lti_consumer.api import (
+    _get_or_create_local_lti_config,
+    get_lti_1p3_launch_info,
+    get_lti_1p3_launch_start_url,
+    get_lti_consumer
+)
 from lti_consumer.lti_xblock import LtiConsumerXBlock
 from lti_consumer.models import LtiConfiguration
 from lti_consumer.tests.unit.test_utils import make_xblock