Example #1
0
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)
Example #2
0
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
Example #3
0
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
Example #4
0
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
Example #5
0
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
Example #6
0
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