def test_grade_local_parsing():
    # TODO: mock out `os.path.isdir` to make this test more portable.
    parser = main.build_parser()
    args = parser.parse_args('grade local myContainerId /tmp'.split())
    assert args.func == grade.command_grade_local
    assert args.containerId == 'myContainerId'
    assert args.dir == '/tmp'
def test_upload_parsing_with_additional_items():
    parser = main.build_parser()
    args = parser.parse_args(
        "upload CONTAINER_ID COURSE_ID ITEM_ID PART_ID "
        "--additional_item_and_part ITEM_2 PART_2 "
        "--additional_item_and_part ITEM_3 PART_3".split()
    )
    assert args.additional_item_and_part == [["ITEM_2", "PART_2"], ["ITEM_3", "PART_3"]]
def test_upload_parsing():
    parser = main.build_parser()
    args = parser.parse_args("upload CONTAINER_ID COURSE_ID ITEM_ID PART_ID".split())
    assert args.containerId == "CONTAINER_ID"
    assert args.course == "COURSE_ID"
    assert args.item == "ITEM_ID"
    assert args.part == "PART_ID"
    assert args.additional_item_and_part is None
Beispiel #4
0
def test_grade_local_parsing():
    # TODO: mock out `os.path.isdir` to make this test more portable.
    parser = main.build_parser()
    args = parser.parse_args('grade local myimageId /tmp'.split())
    assert args.func == grade.command_grade_local
    assert args.imageId == 'myimageId'
    assert args.dir == '/tmp'
    assert not args.no_rm
def test_upload_parsing_with_additional_items():
    parser = main.build_parser()
    args = parser.parse_args(
        'upload CONTAINER_ID COURSE_ID ITEM_ID PART_ID '
        '--additional_item_and_part ITEM_2 PART_2 '
        '--additional_item_and_part ITEM_3 PART_3'.split())
    assert args.additional_item_and_part == [['ITEM_2', 'PART_2'],
                                             ['ITEM_3', 'PART_3']]
def test_upload_parsing_with_additional_items():
    parser = main.build_parser()
    args = parser.parse_args('upload CONTAINER_ID COURSE_ID ITEM_ID PART_ID '
                             '--additional_item_and_part ITEM_2 PART_2 '
                             '--additional_item_and_part ITEM_3 PART_3'
                             .split())
    assert args.additional_item_and_part == [['ITEM_2', 'PART_2'],
                                             ['ITEM_3', 'PART_3']]
def test_grade_local_parsing_with_extra_args():
    parser = main.build_parser()
    args = parser.parse_args(
        'grade local myContainerId /tmp arg1 arg2'.split())
    assert args.func == grade.command_grade_local
    assert args.containerId == 'myContainerId'
    assert args.dir == '/tmp'
    assert args.args == ['arg1', 'arg2']
def test_ls_parsing_flags():
    parser = main.build_parser()
    args = parser.parse_args('ls -al --human my-container /foo/bar'.split())
    assert args.func == ls.command_ls
    assert args.dir == '/foo/bar', args.dir
    assert args.imageId == 'my-container', args.imageId
    assert args.a
    assert args.l
    assert args.human
Beispiel #9
0
def test_grade_local_parsing_with_extra_args():
    parser = main.build_parser()
    args = parser.parse_args(
        'grade local --no-rm myimageId /tmp arg1 arg2'.split())
    assert args.func == grade.command_grade_local
    assert args.imageId == 'myimageId'
    assert args.dir == '/tmp'
    assert args.args == ['arg1', 'arg2']
    assert args.no_rm
Beispiel #10
0
def test_ls_parsing_flags():
    parser = main.build_parser()
    args = parser.parse_args('ls -al --human my-container /foo/bar'.split())
    assert args.func == ls.command_ls
    assert args.dir == '/foo/bar', args.dir
    assert args.containerId == 'my-container', args.containerId
    assert args.a
    assert args.l
    assert args.human
def test_grade_local_parsing_with_extra_args():
    parser = main.build_parser()
    args = parser.parse_args(
        'grade local --no-rm myimageId /tmp arg1 arg2'.split())
    assert args.func == grade.command_grade_local
    assert args.imageId == 'myimageId'
    assert args.dir == '/tmp'
    assert args.args == ['arg1', 'arg2']
    assert args.no_rm
def test_grade_local_parsing():
    # TODO: mock out `os.path.isdir` to make this test more portable.
    parser = main.build_parser()
    args = parser.parse_args('grade local myimageId /tmp'.split())
    assert args.func == grade.command_grade_local
    assert args.imageId == 'myimageId'
    assert args.dir == '/tmp'
    assert not args.no_rm
    assert args.mem_limit == 1024
Beispiel #13
0
def test_upload_parsing():
    parser = main.build_parser()
    args = parser.parse_args(
               'upload CONTAINER_IMAGE_ID COURSE_ID ITEM_ID PART_ID'.split())
    assert args.imageId == 'CONTAINER_IMAGE_ID'
    assert args.course == 'COURSE_ID'
    assert args.item == 'ITEM_ID'
    assert args.part == 'PART_ID'
    assert args.additional_item_and_part is None
def test_ls_parsing_flags():
    parser = main.build_parser()
    args = parser.parse_args("ls -al --human my-container /foo/bar".split())
    assert args.func == ls.command_ls
    assert args.dir == "/foo/bar", args.dir
    assert args.imageId == "my-container", args.imageId
    assert args.a
    assert args.l
    assert args.human
def test_grade_local_parsing_with_extra_args():
    parser = main.build_parser()
    args = parser.parse_args(
        'grade local --no-rm --mem-limit 2048 myimageId /tmp a1 a2'.split())
    assert args.func == grade.command_grade_local
    assert args.imageId == 'myimageId'
    assert args.dir == '/tmp'
    assert args.args == ['a1', 'a2']
    assert args.no_rm
    assert args.mem_limit == 2048
def test_grade_local_parsing_with_extra_args():
    parser = main.build_parser()
    args = parser.parse_args(
        'grade local --no-rm --mem-limit 2048 myimageId /tmp a1 a2'.split())
    assert args.func == grade.command_grade_local
    assert args.imageId == 'myimageId'
    assert args.dir == '/tmp'
    assert args.args == ['a1', 'a2']
    assert args.no_rm
    assert args.mem_limit == 2048
def test_upload_parsing_with_resource_customization():
    parser = main.build_parser()
    args = parser.parse_args(
        "upload CONTAINER_ID COURSE_ID ITEM_ID PART_ID "
        "--grader-cpu 1 "
        "--grader-memory-limit 1024 "
        "--grading-timeout 300 ".split()
    )
    assert args.grader_cpu == 1
    assert args.grader_memory_limit == 1024
    assert args.grading_timeout == 300
Beispiel #18
0
def test_upload_parsing_with_resource_customization():
    parser = main.build_parser()
    args = parser.parse_args('upload CONTAINER_IMAGE_ID COURSE_ID ITEM_ID '
                             'PART_ID '
                             '--grader-cpu 1 '
                             '--grader-memory-limit 1024 '
                             '--grading-timeout 300 '
                             .split())
    assert args.grader_cpu == 1
    assert args.grader_memory_limit == 1024
    assert args.grading_timeout == 300
Beispiel #19
0
def test_upload_parsing_timeout_too_low():
    parser = main.build_parser()
    try:
        parser.parse_args('upload CONTAINER_IMAGE_ID COURSE_ID ITEM_ID '
                          'PART_ID '
                          '--grader-cpu 1 '
                          '--grader-memory-limit 1024 '
                          '--grading-timeout 299 '
                          .split())
    except SystemExit:
        assert True
    else:
        assert False, 'parser should have thrown exception'
def test_upload_parsing_timeout_too_low():
    parser = main.build_parser()
    try:
        parser.parse_args(
            "upload CONTAINER_ID COURSE_ID ITEM_ID PART_ID "
            "--grader-cpu 1 "
            "--grader-memory-limit 1024 "
            "--grading-timeout 299 ".split()
        )
    except SystemExit:
        assert True
    else:
        assert False, "parser should have thrown exception"
def test_upload_parsing_invalid_memory():
    parser = main.build_parser()
    try:
        parser.parse_args('upload CONTAINER_IMAGE_ID COURSE_ID ITEM_ID '
                          'PART_ID '
                          '--grader-cpu 1 '
                          '--grader-memory-limit 3 '
                          '--grading-timeout 300 '
                          .split())
    except SystemExit:
        assert True
    else:
        assert False, 'parser should have thrown exception'
def test_no_timeout():
    parser = main.build_parser()
    args = parser.parse_args('version'.split())
    assert args.timeout == 60
def test_publish_parsing():
    parser = main.build_parser()
    args = parser.parse_args('publish COURSE_ID ITEM_ID'.split())
    assert args.course == 'COURSE_ID'
    assert args.item == 'ITEM_ID'
    assert args.additional_items is None
def test_set_logging_level():
    parser = main.build_parser()
    args = parser.parse_args('-vv version'.split())
    utils.set_logging_level(args)
    assert logging.getLogger().getEffectiveLevel() == 5  # "Trace"
def test_set_logging_level_noneSpecified():
    parser = main.build_parser()
    args = parser.parse_args('version'.split())
    utils.set_logging_level(args)
    assert logging.getLogger().getEffectiveLevel() == logging.INFO or \
        logging.getLogger().getEffectiveLevel() == logging.NOTSET
def test_no_timeout():
    parser = main.build_parser()
    args = parser.parse_args('version'.split())
    assert args.timeout == 60
def test_upload_parsing_with_additional_items():
    parser = main.build_parser()
    args = parser.parse_args('publish COURSE_ID ITEM_ID'.split() +
                             '--additional-items ITEM_2 ITEM_3 ITEM_4'.split())
    print(args.additional_items)
    assert args.additional_items == ['ITEM_2', 'ITEM_3', 'ITEM_4']
def test_chattiness_parsing_verbose():
    parser = main.build_parser()
    args = parser.parse_args('-v version'.split())
    assert args.verbose == 1
Beispiel #29
0
def test_version_parsing():
    parser = main.build_parser()
    args = parser.parse_args('version'.split())
    assert args.func == version.command_version
def test_sanity_parsing():
    parser = main.build_parser()
    args = parser.parse_args('sanity'.split())
    assert args.func == sanity.command_sanity
def test_upload_parsing_with_additional_items():
    parser = main.build_parser()
    args = parser.parse_args('publish COURSE_ID ITEM_ID'.split() +
                             '--additional-items ITEM_2 ITEM_3 ITEM_4'.split())
    print args.additional_items
    assert args.additional_items == ['ITEM_2', 'ITEM_3', 'ITEM_4']
def test_ls_parsing_simple():
    parser = main.build_parser()
    args = parser.parse_args("ls a1b2c3 /".split())
    assert args.func == ls.command_ls, "func: %s" % args.func
    assert args.dir == "/", "Dir is: %s" % args.dir
    assert args.imageId == "a1b2c3", "Container id: %s" % args.imageId
def test_set_logging_level_noneSpecified():
    parser = main.build_parser()
    args = parser.parse_args('version'.split())
    utils.set_logging_level(args)
    assert logging.getLogger().getEffectiveLevel() == logging.INFO or \
        logging.getLogger().getEffectiveLevel() == logging.NOTSET
def test_set_timeout():
    parser = main.build_parser()
    args = parser.parse_args('--timeout 120 version'.split())
    assert args.timeout == 120
def test_chattiness_parsing_quiet():
    parser = main.build_parser()
    args = parser.parse_args('-qq version'.split())
    assert args.quiet == 2
def test_chattiness_parsing_quiet():
    parser = main.build_parser()
    args = parser.parse_args('-qq version'.split())
    assert args.quiet == 2
def test_sanity_parsing():
    parser = main.build_parser()
    args = parser.parse_args('sanity'.split())
    assert args.func == sanity.command_sanity
def test_set_logging_level():
    parser = main.build_parser()
    args = parser.parse_args('-vv version'.split())
    utils.set_logging_level(args)
    assert logging.getLogger().getEffectiveLevel() == 5  # "Trace"
def test_config_parsing_check_auth():
    parser = main.build_parser()
    args = parser.parse_args('configure check-auth'.split())
    assert args.func == config.check_auth
def test_set_timeout():
    parser = main.build_parser()
    args = parser.parse_args('--timeout 120 version'.split())
    assert args.timeout == 120
def test_cat_parsing():
    parser = main.build_parser()
    args = parser.parse_args('cat imageId /root/foo bar /bar/baz'.split())
    assert args.func == cat.command_cat
    assert args.imageId == 'imageId'
    assert args.file == ['/root/foo', 'bar', '/bar/baz']
def test_inspect_parsing():
    parser = main.build_parser()
    args = parser.parse_args('inspect demo/primes'.split())
    assert args.func == inspect.command_inspect
    assert args.containerId == 'demo/primes'
    assert not args.no_rm
def test_chattiness_parsing_verbose():
    parser = main.build_parser()
    args = parser.parse_args('-v version'.split())
    assert args.verbose == 1
Beispiel #44
0
def test_ls_parsing_simple():
    parser = main.build_parser()
    args = parser.parse_args('ls a1b2c3 /'.split())
    assert args.func == ls.command_ls, "func: %s" % args.func
    assert args.dir == '/', "Dir is: %s" % args.dir
    assert args.containerId == 'a1b2c3', "Container id: %s" % args.containerId
Beispiel #45
0
def test_inspect_parsing():
    parser = main.build_parser()
    args = parser.parse_args('inspect demo/primes'.split())
    assert args.func == inspect.command_inspect
    assert args.containerId == 'demo/primes'
def test_config_parsing_check_auth():
    parser = main.build_parser()
    args = parser.parse_args('configure display-auth-cache'.split())
    assert args.func == config.display_auth_cache
def test_cat_parsing():
    parser = main.build_parser()
    args = parser.parse_args('cat imageId /root/foo bar /bar/baz'.split())
    assert args.func == cat.command_cat
    assert args.imageId == 'imageId'
    assert args.file == ['/root/foo', 'bar', '/bar/baz']
def test_publish_parsing():
    parser = main.build_parser()
    args = parser.parse_args('publish COURSE_ID ITEM_ID'.split())
    assert args.course == 'COURSE_ID'
    assert args.item == 'ITEM_ID'
    assert args.additional_items is None
def test_ls_parsing_simple():
    parser = main.build_parser()
    args = parser.parse_args('ls a1b2c3 /'.split())
    assert args.func == ls.command_ls, "func: %s" % args.func
    assert args.dir == '/', "Dir is: %s" % args.dir
    assert args.imageId == 'a1b2c3', "Container id: %s" % args.imageId