コード例 #1
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 myContainerId /tmp'.split())
    assert args.func == grade.command_grade_local
    assert args.containerId == 'myContainerId'
    assert args.dir == '/tmp'
コード例 #2
0
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"]]
コード例 #3
0
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
コード例 #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
コード例 #5
0
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']]
コード例 #6
0
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']]
コード例 #7
0
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']
コード例 #8
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.imageId == 'my-container', args.imageId
    assert args.a
    assert args.l
    assert args.human
コード例 #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
コード例 #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
コード例 #11
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
コード例 #12
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
    assert args.mem_limit == 1024
コード例 #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
コード例 #14
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.imageId == "my-container", args.imageId
    assert args.a
    assert args.l
    assert args.human
コード例 #15
0
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
コード例 #16
0
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
コード例 #17
0
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
コード例 #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
コード例 #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'
コード例 #20
0
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"
コード例 #21
0
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'
コード例 #22
0
def test_no_timeout():
    parser = main.build_parser()
    args = parser.parse_args('version'.split())
    assert args.timeout == 60
コード例 #23
0
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
コード例 #24
0
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"
コード例 #25
0
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
コード例 #26
0
def test_no_timeout():
    parser = main.build_parser()
    args = parser.parse_args('version'.split())
    assert args.timeout == 60
コード例 #27
0
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']
コード例 #28
0
def test_chattiness_parsing_verbose():
    parser = main.build_parser()
    args = parser.parse_args('-v version'.split())
    assert args.verbose == 1
コード例 #29
0
def test_version_parsing():
    parser = main.build_parser()
    args = parser.parse_args('version'.split())
    assert args.func == version.command_version
コード例 #30
0
def test_sanity_parsing():
    parser = main.build_parser()
    args = parser.parse_args('sanity'.split())
    assert args.func == sanity.command_sanity
コード例 #31
0
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']
コード例 #32
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.imageId == "a1b2c3", "Container id: %s" % args.imageId
コード例 #33
0
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
コード例 #34
0
def test_set_timeout():
    parser = main.build_parser()
    args = parser.parse_args('--timeout 120 version'.split())
    assert args.timeout == 120
コード例 #35
0
def test_chattiness_parsing_quiet():
    parser = main.build_parser()
    args = parser.parse_args('-qq version'.split())
    assert args.quiet == 2
コード例 #36
0
def test_chattiness_parsing_quiet():
    parser = main.build_parser()
    args = parser.parse_args('-qq version'.split())
    assert args.quiet == 2
コード例 #37
0
def test_sanity_parsing():
    parser = main.build_parser()
    args = parser.parse_args('sanity'.split())
    assert args.func == sanity.command_sanity
コード例 #38
0
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"
コード例 #39
0
def test_config_parsing_check_auth():
    parser = main.build_parser()
    args = parser.parse_args('configure check-auth'.split())
    assert args.func == config.check_auth
コード例 #40
0
def test_set_timeout():
    parser = main.build_parser()
    args = parser.parse_args('--timeout 120 version'.split())
    assert args.timeout == 120
コード例 #41
0
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']
コード例 #42
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'
    assert not args.no_rm
コード例 #43
0
def test_chattiness_parsing_verbose():
    parser = main.build_parser()
    args = parser.parse_args('-v version'.split())
    assert args.verbose == 1
コード例 #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
コード例 #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'
コード例 #46
0
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
コード例 #47
0
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']
コード例 #48
0
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
コード例 #49
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.imageId == 'a1b2c3', "Container id: %s" % args.imageId