diff --git a/lti_consumer/lti_1p3/tests/test_consumer.py b/lti_consumer/lti_1p3/tests/test_consumer.py
index e3b0e7e9b55ebb799ee72cdfe8d0cfaf5687166f..70f2e88d6c36616f48f95230e8cd7b7be15c6b26 100644
--- a/lti_consumer/lti_1p3/tests/test_consumer.py
+++ b/lti_consumer/lti_1p3/tests/test_consumer.py
@@ -137,7 +137,7 @@ class TestLti1p3Consumer(TestCase):
         Check that user roles are correctly translated to LTI 1.3 compliant rolenames.
         """
         roles = self.lti_consumer._get_user_roles(role)  # pylint: disable=protected-access
-        self.assertItemsEqual(roles, expected_output)
+        self.assertCountEqual(roles, expected_output)
 
     def test_get_user_roles_invalid(self):
         """
@@ -158,7 +158,7 @@ class TestLti1p3Consumer(TestCase):
 
         # Extract and check parameters from OIDC launch request url
         parameters = parse_qs(urlparse(preflight_request_data['oidc_url']).query)
-        self.assertItemsEqual(
+        self.assertCountEqual(
             parameters.keys(),
             [
                 'iss',
@@ -290,7 +290,7 @@ class TestLti1p3Consumer(TestCase):
         self.assertEqual(mock_time.call_count, 2)
 
         # Check launch request contents
-        self.assertItemsEqual(launch_request.keys(), ['state', 'id_token'])
+        self.assertCountEqual(launch_request.keys(), ['state', 'id_token'])
         self.assertEqual(launch_request['state'], 'state')
         # TODO: Decode and check token
 
diff --git a/lti_consumer/tests/unit/test_lti_consumer.py b/lti_consumer/tests/unit/test_lti_consumer.py
index 504838f80e15c1cd62001ff992951e5889dd513b..780995f5cfea64538928604d7a132081bd8d2534 100644
--- a/lti_consumer/tests/unit/test_lti_consumer.py
+++ b/lti_consumer/tests/unit/test_lti_consumer.py
@@ -964,7 +964,10 @@ class TestLtiConsumer1p3XBlock(TestCase):
         self.assertEqual(response.status_code, 200)
 
         # Check if tool OIDC url is on page
-        self.assertIn(self.xblock_attributes['lti_1p3_oidc_url'], response.body)
+        self.assertIn(
+            self.xblock_attributes['lti_1p3_oidc_url'],
+            response.body.decode('utf-8')
+        )
 
     # pylint: disable=unused-argument
     @patch('lti_consumer.utils.get_lms_base', return_value="https://example.com")
@@ -985,8 +988,10 @@ class TestLtiConsumer1p3XBlock(TestCase):
 
         # Check response and assert that state was inserted
         self.assertEqual(response.status_code, 200)
-        self.assertIn("state", response.body)
-        self.assertIn("state_test_123", response.body)
+
+        response_body = response.body.decode('utf-8')
+        self.assertIn("state", response_body)
+        self.assertIn("state_test_123", response_body)
 
     def test_launch_callback_endpoint_when_using_lti_1p1(self):
         """