def test_submission_settings_parse_invalid_local(): """ Test process_answer.settings_parse function. """ script_name: str = "1" settings: dict = { "files": { "local": [{ "name": "abcdef.txt", "path": "abc.def" }] } } with pytest.raises(FailedFilesLoadException): process_answer.settings_proceed(script_name, settings)
def test_submission_settings_parse_valid_external(): """ Test process_answer.settings_parse function. """ script_name: str = "1" settings: dict = { "files": { "external": [{ "name": "test-external.txt", "link": "http://captive.apple.com" }] } } expected_response: tuple = ( [{ "type": "external", "name": "test-external.txt", "path": PATH_DATA_DIRECTORY / "grader_scripts/1/test-external.txt", }], EPICBOX_SETTINGS["profile"], EPICBOX_SETTINGS["container_limits"], ) assert process_answer.settings_proceed(script_name, settings) == expected_response
def test_submission_settings_parse_valid_all(): """ Test process_answer.settings_parse function. """ script_name: str = "1" settings: dict = { "files": { "external": [{ "name": "test-external.txt", "link": "http://captive.apple.com" }], "local": [{ "name": "test-local.txt", "path": "settings.json" }], }, "container_limits": { "cputime": 1, "realtime": 3, "memory": 64, "processes": -1, }, "profile": { "docker_image": "ragnaruk/python:latest", "user": "******", "read_only": False, "network_disabled": True, }, } expected_response: tuple = ( [ { "type": "external", "name": "test-external.txt", "path": PATH_DATA_DIRECTORY / "grader_scripts/1/test-external.txt", }, { "type": "local", "name": "test-local.txt", "path": PATH_GRADER_SCRIPTS_DIRECTORY / "1/settings.json", }, ], settings["profile"], settings["container_limits"], ) assert process_answer.settings_proceed(script_name, settings) == expected_response
def test_submission_settings_parse_valid_empty(): """ Test process_answer.settings_parse function. """ script_name: str = "1" settings: dict = {} expected_response: tuple = ( [], EPICBOX_SETTINGS["profile"], EPICBOX_SETTINGS["container_limits"], ) assert process_answer.settings_proceed(script_name, settings) == expected_response
def test_submission_settings_parse_valid_profile(): """ Test process_answer.settings_parse function. """ script_name: str = "1" settings: dict = { "profile": { "docker_image": "ragnaruk/python:latest", "user": "******", "read_only": False, "network_disabled": True, } } expected_response: tuple = ( [], settings["profile"], EPICBOX_SETTINGS["container_limits"], ) assert process_answer.settings_proceed(script_name, settings) == expected_response
def test_submission_settings_parse_valid_container_limits(): """ Test process_answer.settings_parse function. """ script_name: str = "1" settings: dict = { "container_limits": { "cputime": 1, "realtime": 3, "memory": 64, "processes": -1 } } expected_response: tuple = ( [], EPICBOX_SETTINGS["profile"], settings["container_limits"], ) assert process_answer.settings_proceed(script_name, settings) == expected_response