Пример #1
0
def test_parse_arguments1(no_arguments, capsys):
    """No command-line arguments is incorrect"""
    with pytest.raises(SystemExit):
        parse_arguments.parse_arguments(no_arguments)
    standard_out, standard_err = capsys.readouterr()
    assert standard_out is constants.EMPTY_STRING
    assert constants.ERROR in standard_err
Пример #2
0
def test_file_argument_empty():
    """Check that invalid file arguments will not verify correctly"""
    wrong_arguments = ["--file", ""]
    parsed_arguments = parse_arguments.parse_arguments(wrong_arguments)
    input_list = read_student_file.read_csv_data(parsed_arguments.file)
    checker = parse_arguments.check_valid(parsed_arguments, input_list)
    assert checker is False
Пример #3
0
def test_valid_size(generate_csv):
    """Check that valid size arguments will not verify correctly"""
    correct_arguments = ["--file", generate_csv, "--group-size", "3"]
    parsed_arguments = parse_arguments.parse_arguments(correct_arguments)
    input_list = read_student_file.read_csv_data(parsed_arguments.file)
    checker = parse_arguments.check_valid(parsed_arguments, input_list)
    assert checker is True
Пример #4
0
def test_parse_arguments2(generate_csv):
    """Testing specfied arguments"""
    args = ["--debug", "--file", generate_csv, "--random"]
    parsed_args = parse_arguments.parse_arguments(args)
    assert parsed_args.logging_level == logging.DEBUG
    assert "csvNg.csv" in parsed_args.file
    assert parsed_args.grouping_method == constants.ALGORITHM_RANDOM
Пример #5
0
def test_file_argument_verifiable(generate_csv):
    """Check that valid file arguments will verify correctly"""
    correct_arguments = ["--file", generate_csv]
    parsed_arguments = parse_arguments.parse_arguments(correct_arguments)
    input_list = read_student_file.read_csv_data(parsed_arguments.file)
    checker = parse_arguments.check_valid(parsed_arguments, input_list)
    assert checker is True
Пример #6
0
def test_invalid_input(generate_csv):
    """Check that invalid size and number arguments will not verify correctly"""
    wrong_arguments = ["--file", generate_csv, "--num-group", "7"]
    parsed_arguments = parse_arguments.parse_arguments(wrong_arguments)
    input_list = read_student_file.read_csv_data(parsed_arguments.file)
    checker = parse_arguments.check_valid(parsed_arguments, input_list)
    assert checker is False
Пример #7
0
def test_parse_arguments4(generate_csv):
    """Testing specfied arguments"""
    args = [
        "--absentees",
        "maria",
        "--file",
        generate_csv,
        "--rrobin",
        "--group-size",
        "3",
    ]
    parsed_args = parse_arguments.parse_arguments(args)
    assert parsed_args.group_size == 3
    assert parsed_args.grouping_method == constants.ALGORITHM_ROUND_ROBIN
    assert parsed_args.absentees == ["maria"]
Пример #8
0
def test_run_graph(generate_csv, generate_csv_preference):
    """ Test if the main program can run group graph with preference """
    command = [
        "--file",
        generate_csv,
        "--num-group",
        "2",
        "--method",
        "graph",
        "--preferences",
        generate_csv_preference,
        "--preferences-weight",
        "1.1",
        "--preferences-weight-match",
        "1.3",
    ]
    input_arguments = parse_arguments.parse_arguments(command)
    preference = dict(read_student_file.read_csv_data(input_arguments.preferences))
    output = run.run_arguments(input_arguments, preference)
    assert len(output) == 2
Пример #9
0
""" GatorGrouper randomly assigns a list of students to groups """

import sys
import logging

from gatorgrouper.utils import parse_arguments
from gatorgrouper.utils import read_student_file
from gatorgrouper.utils import display
from gatorgrouper.utils import run

if __name__ == "__main__":  # pragma: no cover

    # parse the arguments and display welcome message
    GG_ARGUMENTS = parse_arguments.parse_arguments(sys.argv[1:])
    display.display_welcome_message()
    logging.info("Configuration of GatorGrouper:")
    logging.debug(GG_ARGUMENTS)

    # read in the student identifiers from the specified file
    input_list = read_student_file.read_csv_data(GG_ARGUMENTS.file)
    if GG_ARGUMENTS.preferences is None:
        preference = None
    else:
        # Filter out empty names and students without preferences from the preferences CSV
        preference_list = [[
            entry for entry in row if entry != ""
        ] for row in read_student_file.read_csv_data(GG_ARGUMENTS.preferences)
                           if len(row) > 1]
        # Associate student with set of preferred students
        preference = {row[0]: set(row[1:]) for row in preference_list}
    check_if_arguments_valid = parse_arguments.check_valid(
Пример #10
0
def test_parse_arguments5(generate_csv):
    """Testing specfied arguments"""
    args = ["--file", generate_csv, "--num-group", "3"]
    parsed_args = parse_arguments.parse_arguments(args)
    assert parsed_args.num_group == 3
Пример #11
0
def test_parse_gatorgrouper_arguments3(generate_csv):
    """Testing specfied arguments"""
    args = ["--verbose", "--file", generate_csv, "--rrobin"]
    parsed_args = parse_arguments.parse_arguments(args)
    assert parsed_args.logging_level == logging.INFO
    assert parsed_args.grouping_method == constants.ALGORITHM_ROUND_ROBIN
Пример #12
0
def test_run_random_remove_absent(generate_csv):
    """ Test if the main program can run group random with absent student """
    command = ["--file", generate_csv, "--num-group", "3", "--absentees", "delgrecoj"]
    input_arguments = parse_arguments.parse_arguments(command)
    output = run.run_arguments(input_arguments)
    assert len(output) == 3
Пример #13
0
def test_run_rrobin(generate_csv):
    """ Test if the main program can run rrobin"""
    command = ["--file", generate_csv, "--num-group", "3", "--method", "rrobin"]
    input_arguments = parse_arguments.parse_arguments(command)
    output = run.run_arguments(input_arguments)
    assert len(output) == 3