コード例 #1
0
def test_options(tmpdir):
    """ if uranium fails on an exception, it should return a proper exit code. """
    ubuild = """
def main(build):
    print("main")
    print(build.options.args)

def test(build):
    print("test")
    print(build.options.args)
""".strip()

    # we need to create a virtualenv
    tmpdir.join("ubuild.py").write(ubuild)
    _, out, err = execute_script(
        "uranium_standalone", "--uranium-dir", URANIUM_SOURCE_ROOT,
        "main", "foo",
        cwd=tmpdir.strpath
    )

    assert "main" in out.decode("UTF-8")
    assert "foo" in out.decode("UTF-8")

    _, out, err = execute_script(
        "uranium_standalone", "--uranium-dir", URANIUM_SOURCE_ROOT,
        "main", "foo",
        cwd=tmpdir.strpath
    )

    assert "test" in out.decode("UTF-8")
    assert "foo" in out.decode("UTF-8")
コード例 #2
0
def test_update(tmpdir):
    """ update should update versions to the latest. """
    hard_version = URANIUM_PY_UPDATE.format(',version="==1.3.1"')
    tmpdir.join("ubuild.py").write(hard_version)
    status, out, err = execute_script("uranium_standalone",
                                      "--uranium-dir",
                                      URANIUM_SOURCE_ROOT,
                                      cwd=tmpdir.strpath)

    assert "1.3.1" in out.decode("utf-8")

    no_version = URANIUM_PY_UPDATE.format('')
    tmpdir.join("ubuild.py").write(no_version)
    status, out, err = execute_script("uranium_standalone",
                                      "--uranium-dir",
                                      URANIUM_SOURCE_ROOT,
                                      cwd=tmpdir.strpath)

    assert "1.3.1" in out.decode("utf-8")

    update_version = URANIUM_PY_UPDATE.format(',upgrade=True')
    tmpdir.join("ubuild.py").write(update_version)
    status, out, err = execute_script("uranium_standalone",
                                      "--uranium-dir",
                                      URANIUM_SOURCE_ROOT,
                                      cwd=tmpdir.strpath)

    assert "1.3.1" in out.decode("utf-8")
コード例 #3
0
def test_history_full(tmpdir):
    """ the history should be stored from run to run """
    tmpdir.join("ubuild.py").write(URANIUM_PY)

    status, out, err = execute_script("uranium_standalone",
                                      "--uranium-dir",
                                      URANIUM_SOURCE_ROOT,
                                      cwd=tmpdir.strpath)
    assert "false" in out.decode("utf-8")

    status, out, err = execute_script("uranium_standalone",
                                      "--uranium-dir",
                                      URANIUM_SOURCE_ROOT,
                                      cwd=tmpdir.strpath)
    assert "true" in out.decode("utf-8")
コード例 #4
0
def test_package_cache(tmpdir):
    """ don't event attempt to call pip, if a package already exists. """
    tmpdir.join("ubuild.py").write(URANIUM_PY)
    execute_script(
        "uranium_standalone", "--uranium-dir", URANIUM_SOURCE_ROOT,
        cwd=tmpdir.strpath
    )
    code, out, err = execute_script(
        "uranium_standalone", "--uranium-dir", URANIUM_SOURCE_ROOT,
        cwd=tmpdir.strpath
    )
    print(out)
    print(err)
    assert "Requirement already satisified" not in str(out)
    assert code == 0
コード例 #5
0
def test_history_full(tmpdir):
    """ the history should be stored from run to run """
    tmpdir.join("ubuild.py").write(URANIUM_PY)

    status, out, err = execute_script(
        "uranium_standalone", "--uranium-dir", URANIUM_SOURCE_ROOT,
        cwd=tmpdir.strpath
    )
    assert "false" in out.decode("utf-8")

    status, out, err = execute_script(
        "uranium_standalone", "--uranium-dir", URANIUM_SOURCE_ROOT,
        cwd=tmpdir.strpath
    )
    assert "true" in out.decode("utf-8")
コード例 #6
0
def test_package_cache(tmpdir):
    """ don't event attempt to call pip, if a package already exists. """
    tmpdir.join("ubuild.py").write(URANIUM_PY)
    execute_script(
        "uranium_standalone", "--uranium-dir", URANIUM_SOURCE_ROOT,
        cwd=tmpdir.strpath
    )
    code, out, err = execute_script(
        "uranium_standalone", "--uranium-dir", URANIUM_SOURCE_ROOT,
        cwd=tmpdir.strpath
    )
    print(out)
    print(err)
    assert "Requirement already satisified" not in str(out)
    assert code == 0
コード例 #7
0
def test_executable_relocatable_after_install(tmpdir):
    """
    an executable installed from a package should be
    using the virtualenv relocatable version.
    """

    UBUILD = """
import os

def main(build):

    build.packages.install("tox")
    nose_path = os.path.join(build.root, "bin", "tox")
    with open(nose_path) as fh:
        contents = fh.read()
    print(contents)
    assert build.root not in contents
""".strip()

    # we need to create a virtualenv
    tmpdir.join("ubuild.py").write(UBUILD)
    code, out, err = execute_script(
        "uranium_standalone", "--uranium-dir", URANIUM_SOURCE_ROOT,
        cwd=tmpdir.strpath
    )
    print("stdout:\n" + str(out))
    print("stderr:\n" + str(err))
    assert code == 0
コード例 #8
0
def test_executable_relocatable_after_install(tmpdir):
    """
    an executable installed from a package should be
    using the virtualenv relocatable version.
    """

    UBUILD = """
import os

def main(build):

    build.packages.install("tox")
    nose_path = os.path.join(build.root, "bin", "tox")
    with open(nose_path) as fh:
        contents = fh.read()
    print(contents)
    assert build.root not in contents
""".strip()

    # we need to create a virtualenv
    tmpdir.join("ubuild.py").write(UBUILD)
    code, out, err = execute_script(
        "uranium_standalone", "--uranium-dir", URANIUM_SOURCE_ROOT,
        cwd=tmpdir.strpath
    )
    print("stdout:\n" + str(out))
    print("stderr:\n" + str(err))
    assert code == 0
コード例 #9
0
def test_error(tmpdir):
    # we need to create a virtualenv
    tmpdir.join("ubuild.py").write(URANIUM_PY)
    code, out, err = execute_script("uranium_standalone",
                                    "--uranium-dir",
                                    URANIUM_SOURCE_ROOT,
                                    cwd=tmpdir.strpath)
    assert "URANIUM FAILED" in str(out)
    assert code == 1
コード例 #10
0
def test_error(tmpdir):
    # we need to create a virtualenv
    tmpdir.join("ubuild.py").write(URANIUM_PY)
    code, out, err = execute_script(
        "uranium_standalone", "--uranium-dir", URANIUM_SOURCE_ROOT,
        cwd=tmpdir.strpath
    )
    assert "URANIUM FAILED" in str(out)
    assert code == 1
コード例 #11
0
def test_history_full_invalid_history(tmpdir):
    """ the history should be stored from run to run """
    tmpdir.join("ubuild.py").write(URANIUM_PY_INVALID_HISTORY)

    status, out, err = execute_script("uranium_standalone",
                                      "--uranium-dir",
                                      URANIUM_SOURCE_ROOT,
                                      cwd=tmpdir.strpath)
    assert status != 0
コード例 #12
0
def test_history_full_invalid_history(tmpdir):
    """ the history should be stored from run to run """
    tmpdir.join("ubuild.py").write(URANIUM_PY_INVALID_HISTORY)

    status, out, err = execute_script(
        "uranium_standalone", "--uranium-dir", URANIUM_SOURCE_ROOT,
        cwd=tmpdir.strpath
    )
    assert status != 0
コード例 #13
0
def test_tasks(tmpdir):
    # we need to create a virtualenv
    tmpdir.join("ubuild.py").write(URANIUM_PY)
    code, out, err = execute_script(
        "uranium_standalone", "--uranium-dir", URANIUM_SOURCE_ROOT, "--tasks",
        cwd=tmpdir.strpath
    )
    assert "main: this is a docstring" in str(out)
    assert "_foo: added via tasks" in str(out)
    assert code == 0
コード例 #14
0
def test_install(tmpdir):
    # we need to create a virtualenv
    tmpdir.join("ubuild.py").write(URANIUM_PY)
    code, out, err = execute_script(
        "uranium_standalone", "--uranium-dir", URANIUM_SOURCE_ROOT,
        cwd=tmpdir.strpath
    )
    print("stdout:\n" + str(out))
    print("stderr:\n" + str(err))
    assert code == 0
コード例 #15
0
def test_nonzero_exit_code(tmpdir):
    tmpdir.join("ubuild.py").write("""
def main(build):
    return 1
    """.strip())
    code, out, err = execute_script(
        "uranium_standalone", "--uranium-dir", URANIUM_SOURCE_ROOT,
        cwd=tmpdir.strpath
    )
    assert code == 1
コード例 #16
0
ファイル: test_tasks.py プロジェクト: toumorokoshi/uranium
def test_task_overrides_ubuild(tmpdir):
    """ update should update versions to the latest. """
    tmpdir.join("ubuild.py").write(URANIUM_PY)
    status, out, err = execute_script(
        "uranium_standalone", "--uranium-dir", URANIUM_SOURCE_ROOT,
        cwd=tmpdir.strpath
    )

    assert "ubuild.py" not in out.decode("utf-8")
    assert "task" in out.decode("utf-8")
コード例 #17
0
def test_uninstall(tmpdir):
    # we need to create a virtualenv
    tmpdir.join("ubuild.py").write(URANIUM_PY_UNINSTALL)
    code, out, err = execute_script(
        "uranium_standalone", "--uranium-dir", URANIUM_SOURCE_ROOT,
        cwd=tmpdir.strpath
    )
    print("stdout:\n" + str(out))
    print("stderr:\n" + str(err))
    assert code == 0
コード例 #18
0
def test_tasks(tmpdir):
    # we need to create a virtualenv
    tmpdir.join("ubuild.py").write(URANIUM_PY)
    code, out, err = execute_script("uranium_standalone",
                                    "--uranium-dir",
                                    URANIUM_SOURCE_ROOT,
                                    "--tasks",
                                    cwd=tmpdir.strpath)
    assert "main: this is a docstring" in str(out)
    assert "_foo: added via tasks" in str(out)
    assert code == 0
コード例 #19
0
ファイル: test_tasks.py プロジェクト: pombredanne/uranium-1
def test_task_overrides_ubuild(tmpdir):
    """ update should update versions to the latest. """
    tmpdir.join("ubuild.py").write(URANIUM_PY)
    status, out, err = execute_script("uranium_standalone",
                                      "--uranium-dir",
                                      URANIUM_SOURCE_ROOT,
                                      cwd=tmpdir.strpath)

    assert "" == err.decode("utf-8")
    assert "ubuild.py" not in out.decode("utf-8")
    assert "task" in out.decode("utf-8")
コード例 #20
0
def test_update(tmpdir):
    """ update should update versions to the latest. """
    hard_version = URANIUM_PY_UPDATE.format(',version="==1.3.1"')
    tmpdir.join("ubuild.py").write(hard_version)
    status, out, err = execute_script("uranium_standalone", "--uranium-dir", URANIUM_SOURCE_ROOT,
                                      cwd=tmpdir.strpath)

    assert "1.3.1" in out.decode("utf-8")

    no_version = URANIUM_PY_UPDATE.format('')
    tmpdir.join("ubuild.py").write(no_version)
    status, out, err = execute_script("uranium_standalone", "--uranium-dir", URANIUM_SOURCE_ROOT,
                                      cwd=tmpdir.strpath)

    assert "1.3.1" in out.decode("utf-8")

    update_version = URANIUM_PY_UPDATE.format(',upgrade=True')
    tmpdir.join("ubuild.py").write(update_version)
    status, out, err = execute_script("uranium_standalone", "--uranium-dir", URANIUM_SOURCE_ROOT,
                                      cwd=tmpdir.strpath)

    assert "1.3.1" in out.decode("utf-8")
コード例 #21
0
ファイル: test_config.py プロジェクト: toumorokoshi/uranium
def test_config_nested_dict_parameters(tmpdir):
    """
    configuration parameters passed into the command line should
    become available in the build.config object.
    """
    tmpdir.join("ubuild.py").write("""
def main(build):
    print(build.config)
    """.strip())
    status, out, err = execute_script(
        "uranium_standalone", "--uranium-dir", URANIUM_SOURCE_ROOT, "-c", "test_key_out.test_key_in:test_value",
        cwd=tmpdir.strpath
    )
    assert "{'test_key_out': {'test_key_in': 'test_value'}}" in out.decode("UTF-8")
コード例 #22
0
def test_exit_code_returned_on_bad_run(tmpdir):
    """ if uranium fails on an exception, it should return a proper exit code. """
    ubuild = """
def main(build):
    assert "foo" == None
""".strip()

    # we need to create a virtualenv
    tmpdir.join("ubuild.py").write(ubuild)
    code, _, _ = execute_script(
        "uranium_standalone", "--uranium-dir", URANIUM_SOURCE_ROOT,
        cwd=tmpdir.strpath
    )
    assert code != 0
コード例 #23
0
def test_pytest_available_after_install(tmpdir):
    """ pytest should be available after an installation. """

    UBUILD = """
def main(build):
    build.packages.install("pytest", version="==2.7.0")
    build.executables.run(["py.test", "--version"])
    """.strip()

    tmpdir.join("ubuild.py").write(UBUILD)
    code, out, err = execute_script(
        "uranium_standalone", "--uranium-dir", URANIUM_SOURCE_ROOT,
        cwd=tmpdir.strpath
    )
    print("stdout:\n" + str(out))
    print("stderr:\n" + str(err))
    assert "2.7.0" in out.decode("utf-8")
コード例 #24
0
def test_no_traceback_on_bad_error_code(tmpdir):
    """ pytest should be available after an installation. """

    UBUILD = """
def main(build):
    # grep with no arguments is a non-zero exit code.
    build.executables.run(["grep"])
    """.strip()

    tmpdir.join("ubuild.py").write(UBUILD)
    code, out, err = execute_script(
        "uranium_standalone", "--uranium-dir", URANIUM_SOURCE_ROOT,
        cwd=tmpdir.strpath
    )
    print("stdout:\n" + str(out))
    print("stderr:\n" + str(err))
    assert "Traceback" not in out.decode("utf-8")
コード例 #25
0
def test_config_parameters(tmpdir):
    """
    configuration parameters passed into the command line should
    become available in the build.config object.
    """
    tmpdir.join("ubuild.py").write("""
def main(build):
    print(build.config)
    """.strip())
    status, out, err = execute_script("uranium_standalone",
                                      "--uranium-dir",
                                      URANIUM_SOURCE_ROOT,
                                      "-c",
                                      "test_key:test_value",
                                      cwd=tmpdir.strpath)
    assert "test_key" in out.decode("UTF-8")
    assert "test_value" in out.decode("UTF-8")
コード例 #26
0
def test_pytest_avaliable_after_install(tmpdir):
    """ pytest should be available after an installation. """

    UBUILD = """
def main(build):
    build.packages.install("pytest", version="==2.7.0")
    build.executables.run(["py.test", "--version"])
    """.strip()

    tmpdir.join("ubuild.py").write(UBUILD)
    code, out, err = execute_script(
        "uranium_standalone", "--uranium-dir", URANIUM_SOURCE_ROOT,
        cwd=tmpdir.strpath
    )
    print("stdout:\n" + str(out))
    print("stderr:\n" + str(err))
    assert "2.7.0" in out.decode("utf-8")
コード例 #27
0
def test_no_traceback_on_bad_error_code(tmpdir):
    """ pytest should be available after an installation. """

    UBUILD = """
def main(build):
    # grep with no arguments is a non-zero exit code.
    build.executables.run(["grep"])
    """.strip()

    tmpdir.join("ubuild.py").write(UBUILD)
    code, out, err = execute_script("uranium_standalone",
                                    "--uranium-dir",
                                    URANIUM_SOURCE_ROOT,
                                    cwd=tmpdir.strpath)
    print("stdout:\n" + str(out))
    print("stderr:\n" + str(err))
    assert "Traceback" not in out.decode("utf-8")
コード例 #28
0
def test_versions_dict_updated(tmpdir):
    """ the versions dict should be updated once a version is installed. """

    UBUILD = """
def main(build):

    build.packages.install("nose")
    print(build.packages.versions["nose"])
    print("fooo")
""".strip()

    # we need to create a virtualenv
    tmpdir.join("ubuild.py").write(UBUILD)
    code, out, err = execute_script(
        "uranium_standalone", "--uranium-dir", URANIUM_SOURCE_ROOT,
        cwd=tmpdir.strpath
    )
    print("stdout:\n" + str(out))
    print("stderr:\n" + str(err))
    assert code == 0
コード例 #29
0
def test_versions_dict_updated(tmpdir):
    """ the versions dict should be updated once a version is installed. """

    UBUILD = """
def main(build):

    build.packages.install("nose")
    print(build.packages.versions["nose"])
    print("fooo")
""".strip()

    # we need to create a virtualenv
    tmpdir.join("ubuild.py").write(UBUILD)
    code, out, err = execute_script(
        "uranium_standalone", "--uranium-dir", URANIUM_SOURCE_ROOT,
        cwd=tmpdir.strpath
    )
    print("stdout:\n" + str(out))
    print("stderr:\n" + str(err))
    assert code == 0
コード例 #30
0
def test_install_with_version_dict_updated(tmpdir):
    UBUILD = """
def main(build):

    build.packages.install("requests", version="==2.15.1")
    build.packages.versions["requests"] = "==2.18.0"
    build.packages.install("requests")
    print(build.packages.versions["requests"])

    import pkg_resources
    pkg_resources.get_distribution("requests==2.18.0")
""".strip()

    tmpdir.join("ubuild.py").write(UBUILD)
    code, out, err = execute_script(
        "uranium_standalone", "--uranium-dir", URANIUM_SOURCE_ROOT,
        cwd=tmpdir.strpath
    )

    assert code == 0
    assert "2.18.0" in out.decode("utf-8")
コード例 #31
0
def test_hook_initialize(tmpdir):
    UBUILD = """
def print_hello(build):
    print("hello")

build.hooks["initialize"].append(print_hello)

def main(build):
    print("goodbye")
    """.strip()

    # we need to create a virtualenv
    tmpdir.join("ubuild.py").write(UBUILD)
    _, out, err = execute_script(
        "uranium_standalone", "--uranium-dir", URANIUM_SOURCE_ROOT,
        cwd=tmpdir.strpath
    )
    hello_index = out.decode("utf-8").index("hello")
    goodbye_index = out.decode("utf-8").index("goodbye")
    assert hello_index != -1
    assert goodbye_index != -1
    assert hello_index < goodbye_index
コード例 #32
0
def test_develop_package_imports(tmpdir):
    """
    a develop package should be importable immediately after installation
    """

    UBUILD = """
import os

def main(build):

    build.packages.install("{package}", develop=True)
    import example
""".format(package=EXAMPLE_PACKAGE_PATH).strip()

    # we need to create a virtualenv
    tmpdir.join("ubuild.py").write(UBUILD)
    code, out, err = execute_script("uranium_standalone",
                                    "--uranium-dir",
                                    URANIUM_SOURCE_ROOT,
                                    cwd=tmpdir.strpath)
    print("stdout:\n" + str(out))
    print("stderr:\n" + str(err))
    assert code == 0
コード例 #33
0
def test_develop_package_imports(tmpdir):
    """
    a develop package should be importable immediately after installation
    """

    UBUILD = """
import os

def main(build):

    build.packages.install("{package}", develop=True)
    import example
""".format(package=EXAMPLE_PACKAGE_PATH).strip()

    # we need to create a virtualenv
    tmpdir.join("ubuild.py").write(UBUILD)
    code, out, err = execute_script(
        "uranium_standalone", "--uranium-dir", URANIUM_SOURCE_ROOT,
        cwd=tmpdir.strpath
    )
    print("stdout:\n" + str(out))
    print("stderr:\n" + str(err))
    assert code == 0