""" Tests for remote codejail execution. """ import json from unittest import TestCase from unittest.mock import patch from django.test import override_settings from xmodule.capa.safe_exec.remote_exec import get_remote_exec class TestRemoteExec(TestCase): """Tests for remote_exec.""" @override_settings( ENABLE_CODEJAIL_REST_SERVICE=True, CODE_JAIL_REST_SERVICE_HOST='http://localhost', ) @patch('requests.post') def test_json_encode(self, mock_post): get_remote_exec({ 'code': "out = 1 + 1", 'globals_dict': {'some_data': b'bytes', 'unusable': object()}, 'extra_files': None, }) mock_post.assert_called_once() data_arg = mock_post.call_args_list[0][1]['data'] payload = json.loads(data_arg['payload']) assert payload['globals_dict'] == {'some_data': 'bytes'}