Exemplo n.º 1
0
def run_step(context: Context):
    print("filespec: %s" % str(context))

    context.assert_key_has_value("vlnv", "filespec")
    context.assert_key_exists("out", "filespec")

    vlnv = context.get_formatted("vlnv")

    dbm = CoreDbMgr.inst()

    deps = dbm.get_depends(vlnv)

    for e in context["out"]:
        if "name" not in e.keys():
            raise KeyNotInContextError("Missing 'name'")
        if "type" not in e.keys():
            raise KeyNotInContextError("Missing 'type'")
        name = e["name"]

        file_types = set()
        for t in e["type"]:
            file_types.add(t.strip())

        flags = {}
        if "flags" in e.keys():
            for f in e["flags"]:
                flags[f] = True

        is_include = False
        if "include" in e.keys():
            is_include = bool(e["include"])

        files = dbm.collect_files(deps, file_types, flags, is_include)

        if name in context.keys():
            if isinstance(context[name], list):
                context[name].extend(files)
            elif isinstance(context[name], str):
                context[name] += " ".join(files)
            else:
                raise Exception("Target for files is an unsupported type %s" %
                                str(type(context[name])))
        else:
            context[name] = files
Exemplo n.º 2
0
def run_step(context: Context):

    context.assert_key_exists("cmd", "run_step")
    cmd_r = context.get_formatted("cmd")

    print("cmd=%s" % cmd_r)

    cmd_l = cmd_r.split()
    print("cmd_l=%s" % str(cmd_l))

    cmd = [sys.executable, '-m']

    for a in cmd_l:
        if a[0] == '"':
            cmd.append(a[1:len(a) - 1])
        else:
            cmd.append(a)

    print("cmd=%s" % str(cmd))

    if "out" in context.keys():
        try:
            out = subprocess.check_output(cmd)
        except Exception as e:
            print("Exception: %s" % str(e))
            traceback.print_exc()
            raise e
        context[context["out"]] = out.decode().strip()
    else:
        try:
            res = subprocess.run(cmd, stdout=sys.stdout, stderr=sys.stderr)
        except Exception as e:
            raise e

        if res.returncode != 0:
            raise Exception("Run failed")

    pass
Exemplo n.º 3
0
def test_assert_key_exists_passes_string_values():
    """assert_key_has_value passes if context dictionary key value is None."""
    context = Context({'key1': 'something', 'key2': 'other', 'key3': False})
    context.assert_key_exists('key2', None)
    context.assert_key_exists('key3', None)
Exemplo n.º 4
0
def test_assert_key_exists_passes_value_none():
    """assert_key_has_value passes if context dictionary key value is None."""
    context = Context({'key1': None})
    context.assert_key_exists('key1', None)
Exemplo n.º 5
0
def test_assert_key_exists_raises():
    """KeyNotInContextError if key doesn't exist."""
    context = Context({'key1': 'value1'})
    with pytest.raises(KeyNotInContextError):
        context.assert_key_exists('notindict', None)