コード例 #1
0
def test_render_add_channel():
    """This recipe requires the conda_build_test_requirement package, which is
    only on the conda_build_test channel. This verifies that the -c argument
    works for rendering."""
    with TemporaryDirectory() as tmpdir:
        rendered_filename = os.path.join(tmpdir, 'out.yaml')
        args = [
            '-c', 'conda_build_test',
            os.path.join(metadata_dir, "_recipe_requiring_external_channel"),
            '--file', rendered_filename
        ]
        main_render.execute(args)
        with open(rendered_filename, 'r') as rendered_file:
            rendered_meta = yaml.safe_load(rendered_file)
        required_package_string = [
            pkg for pkg in rendered_meta['requirements']['build']
            if 'conda_build_test_requirement' in pkg
        ][0]
        required_package_details = required_package_string.split(' ')
        assert len(required_package_details) > 1, (
            "Expected version number on successful "
            "rendering, but got only {}".format(required_package_details))
        assert required_package_details[
            1] == '1.0', "Expected version number 1.0 on successful rendering, but got {}".format(
                required_package_details[1])
コード例 #2
0
ファイル: test_cli.py プロジェクト: scopatz/conda-build
def test_render_output_build_path_set_python(testing_workdir, testing_metadata,
                                             capfd):
    testing_metadata.meta['requirements'] = {
        'host': ['python'],
        'run': ['python']
    }
    api.output_yaml(testing_metadata, 'meta.yaml')
    # build the other major thing, whatever it is
    if sys.version_info.major == 3:
        version = "2.7"
    else:
        version = "3.5"

    api.output_yaml(testing_metadata, 'meta.yaml')
    metadata = api.render(testing_workdir, python=version)[0][0]

    args = ['--output', testing_workdir, '--python', version]
    main_render.execute(args)

    _hash = metadata.hash_dependencies()
    test_path = "test_render_output_build_path_set_python-1.0-py{}{}{}_1.tar.bz2".format(
        version.split('.')[0],
        version.split('.')[1], _hash)
    output, error = capfd.readouterr()
    assert os.path.basename(output.rstrip()) == test_path, error
コード例 #3
0
def test_render_output_build_path(testing_workdir, capfd):
    args = ['--output', os.path.join(metadata_dir, "python_run")]
    main_render.execute(args)
    test_path = "conda-build-test-python-run-1.0-py{}{}_0.tar.bz2".format(
        sys.version_info.major, sys.version_info.minor)
    output, error = capfd.readouterr()
    assert error == ""
    assert os.path.basename(output.rstrip()) == test_path, error
コード例 #4
0
ファイル: test_cli.py プロジェクト: msarahan/conda-build
def test_render_output_build_path(testing_workdir, capfd):
    args = ['--output', os.path.join(metadata_dir, "python_run")]
    main_render.execute(args)
    test_path = "conda-build-test-python-run-1.0-py{}{}_0.tar.bz2".format(
                                      sys.version_info.major, sys.version_info.minor)
    output, error = capfd.readouterr()
    assert error == ""
    assert os.path.basename(output.rstrip()) == test_path, error
コード例 #5
0
ファイル: test_cli.py プロジェクト: patricksnape/conda-build
def test_render_output_build_path(testing_workdir, test_metadata, capfd):
    api.output_yaml(test_metadata, 'meta.yaml')
    args = ['--output', testing_workdir]
    main_render.execute(args)
    test_path = "test_render_output_build_path-1.0-py{}{}_1.tar.bz2".format(
                                      sys.version_info.major, sys.version_info.minor)
    output, error = capfd.readouterr()
    assert error == ""
    assert os.path.basename(output.rstrip()) == test_path, error
コード例 #6
0
def test_render_output_build_path(testing_workdir, test_metadata, capfd):
    api.output_yaml(test_metadata, 'meta.yaml')
    args = ['--output', testing_workdir]
    main_render.execute(args)
    test_path = "test_render_output_build_path-1.0-py{}{}_1.tar.bz2".format(
        sys.version_info.major, sys.version_info.minor)
    output, error = capfd.readouterr()
    assert error == ""
    assert os.path.basename(output.rstrip()) == test_path, error
コード例 #7
0
def test_render_output_build_path(testing_workdir, testing_metadata, capfd, caplog):
    api.output_yaml(testing_metadata, 'meta.yaml')
    args = ['--output', os.path.join(testing_workdir)]
    main_render.execute(args)
    test_path = os.path.join(sys.prefix, "conda-bld", testing_metadata.config.host_subdir,
                             "test_render_output_build_path-1.0-1.tar.bz2")
    output, error = capfd.readouterr()
    assert output.rstrip() == test_path, error
    assert error == ""
コード例 #8
0
ファイル: test_cli.py プロジェクト: mingwandroid/conda-build
def test_render_output_build_path(testing_workdir, testing_metadata, capfd, caplog):
    api.output_yaml(testing_metadata, 'meta.yaml')
    args = ['--output', os.path.join(testing_workdir)]
    main_render.execute(args)
    test_path = os.path.join(sys.prefix, "conda-bld", testing_metadata.config.host_subdir,
                             "test_render_output_build_path-1.0-1.tar.bz2")
    output, error = capfd.readouterr()
    assert output.rstrip() == test_path, error
    assert error == ""
コード例 #9
0
ファイル: test_cli.py プロジェクト: jdetle/conda-build
def test_render_without_channel_fails():
    # do make extra channel available, so the required package should not be found
    with TemporaryDirectory() as tmpdir:
        rendered_filename = os.path.join(tmpdir, 'out.yaml')
        args = ['--override-channels', '-c', 'conda', os.path.join(metadata_dir, "_recipe_requiring_external_channel"), '--file', rendered_filename]
        main_render.execute(args)
        rendered_meta = yaml.safe_load(open(rendered_filename, 'r'))
        required_package_string = [pkg for pkg in rendered_meta['requirements']['build'] if 'conda_build_test_requirement' in pkg][0]
        assert required_package_string == 'conda_build_test_requirement', \
               "Expected to get only base package name because it should not be found, but got :{}".format(required_package_string)
コード例 #10
0
def test_render_output_build_path(testing_workdir, testing_metadata, capfd, caplog):
    api.output_yaml(testing_metadata, 'meta.yaml')
    metadata = api.render(testing_workdir)[0][0]
    args = ['--output', os.path.join(testing_workdir)]
    main_render.execute(args)
    _hash = metadata._hash_dependencies()
    test_path = "test_render_output_build_path-1.0-py{}{}{}_1.tar.bz2".format(
                                      sys.version_info.major, sys.version_info.minor, _hash)
    output, error = capfd.readouterr()
    # assert error == ""
    assert os.path.basename(output.rstrip()) == test_path, error
コード例 #11
0
ファイル: test_cli.py プロジェクト: timsnyder/conda-build
def test_render_output_build_path(testing_workdir, testing_metadata, capfd, caplog):
    api.output_yaml(testing_metadata, 'meta.yaml')
    metadata = api.render(testing_workdir)[0][0]
    args = ['--output', os.path.join(testing_workdir)]
    main_render.execute(args)
    _hash = metadata._hash_dependencies()
    test_path = "test_render_output_build_path-1.0-py{}{}{}_1.tar.bz2".format(
                                      sys.version_info.major, sys.version_info.minor, _hash)
    output, error = capfd.readouterr()
    # assert error == ""
    assert os.path.basename(output.rstrip()) == test_path, error
コード例 #12
0
ファイル: test_cli.py プロジェクト: bioconda/conda-build
def test_render_output_build_path_set_python(testing_workdir, capfd):
    # build the other major thing, whatever it is
    if sys.version_info.major == 3:
        version = "2.7"
    else:
        version = "3.5"

    args = ["--output", os.path.join(metadata_dir, "python_run"), "--python", version]
    main_render.execute(args)
    test_path = "conda-build-test-python-run-1.0-py{}{}_0.tar.bz2".format(version.split(".")[0], version.split(".")[1])
    output, error = capfd.readouterr()
    assert os.path.basename(output.rstrip()) == test_path, error
コード例 #13
0
ファイル: test_cli.py プロジェクト: mingwandroid/conda-build
def test_render_without_channel_fails():
    # do make extra channel available, so the required package should not be found
    with TemporaryDirectory() as tmpdir:
        rendered_filename = os.path.join(tmpdir, 'out.yaml')
        args = ['--override-channels', os.path.join(metadata_dir, "_recipe_requiring_external_channel"), '--file', rendered_filename]
        main_render.execute(args)
        rendered_meta = yaml.safe_load(open(rendered_filename, 'r'))
        required_package_string = [pkg for pkg in
                                   rendered_meta.get('requirements', {}).get('build', [])
                                   if 'conda_build_test_requirement' in pkg][0]
        assert required_package_string == 'conda_build_test_requirement', \
               "Expected to get only base package name because it should not be found, but got :{}".format(required_package_string)
コード例 #14
0
def test_no_filename_hash(testing_workdir, testing_metadata, capfd):
    api.output_yaml(testing_metadata, 'meta.yaml')
    args = ['--output', testing_workdir, '--old-build-string']
    main_render.execute(args)
    output, error = capfd.readouterr()
    assert not re.search('h[0-9a-f]{%d}' % testing_metadata.config.hash_length, output)

    args = ['--no-anaconda-upload', '--no-activate', testing_workdir, '--old-build-string']
    main_build.execute(args)
    output, error = capfd.readouterr()
    assert not re.search('test_no_filename_hash.*h[0-9a-f]{%d}' % testing_metadata.config.hash_length, output)
    assert not re.search('test_no_filename_hash.*h[0-9a-f]{%d}' % testing_metadata.config.hash_length, error)
コード例 #15
0
ファイル: test_cli.py プロジェクト: jdetle/conda-build
def test_render_output_build_path(testing_workdir, testing_metadata, capfd, caplog):
    api.output_yaml(testing_metadata, 'meta.yaml')
    metadata = api.render(testing_workdir, debug=False, verbose=False)[0][0]
    args = ['--output', os.path.join(testing_workdir)]
    main_render.execute(args)
    _hash = metadata.hash_dependencies()
    test_path = os.path.join(sys.prefix, "conda-bld", testing_metadata.config.host_subdir,
                             "test_render_output_build_path-1.0-py{}{}{}_1.tar.bz2".format(
                                 sys.version_info.major, sys.version_info.minor, _hash))
    output, error = capfd.readouterr()
    assert output.rstrip() == test_path, error
    assert error == ""
コード例 #16
0
ファイル: test_cli.py プロジェクト: jjhelmus/conda-build
def test_no_filename_hash(testing_workdir, testing_metadata, capfd):
    api.output_yaml(testing_metadata, 'meta.yaml')
    args = ['--output', testing_workdir, '--old-build-string']
    main_render.execute(args)
    output, error = capfd.readouterr()
    assert not re.search('h[0-9a-f]{%d}' % testing_metadata.config.hash_length, output)

    args = ['--no-anaconda-upload', '--no-activate', testing_workdir, '--old-build-string']
    main_build.execute(args)
    output, error = capfd.readouterr()
    assert not re.search('h[0-9a-f]{%d}' % testing_metadata.config.hash_length, output)
    assert not re.search('h[0-9a-f]{%d}' % testing_metadata.config.hash_length, error)
コード例 #17
0
ファイル: test_cli.py プロジェクト: soapy1/conda-build
def test_render_output_build_path_and_file(testing_workdir, testing_metadata, capfd, caplog):
    api.output_yaml(testing_metadata, 'meta.yaml')
    rendered_filename = 'out.yaml'
    args = ['--output', '--file', rendered_filename, testing_workdir]
    main_render.execute(args)
    test_path = os.path.join(sys.prefix, "conda-bld", testing_metadata.config.host_subdir,
                             "test_render_output_build_path_and_file-1.0-1.tar.bz2")
    output, error = capfd.readouterr()
    assert output.rstrip() == test_path, error
    assert error == ""
    with open(rendered_filename, 'r') as rendered_file:
        rendered_meta = yaml.safe_load(rendered_file)
    assert rendered_meta['package']['name'] == 'test_render_output_build_path_and_file'
コード例 #18
0
ファイル: test_cli.py プロジェクト: patricksnape/conda-build
def test_render_output_build_path_set_python(testing_workdir, test_metadata, capfd):
    api.output_yaml(test_metadata, 'meta.yaml')
    # build the other major thing, whatever it is
    if sys.version_info.major == 3:
        version = "2.7"
    else:
        version = "3.5"

    args = ['--output', testing_workdir, '--python', version]
    main_render.execute(args)
    test_path = "test_render_output_build_path_set_python-1.0-py{}{}_1.tar.bz2".format(
                                      version.split('.')[0], version.split('.')[1])
    output, error = capfd.readouterr()
    assert os.path.basename(output.rstrip()) == test_path, error
コード例 #19
0
def test_render_output_build_path_set_python(testing_workdir, test_metadata,
                                             capfd):
    api.output_yaml(test_metadata, 'meta.yaml')
    # build the other major thing, whatever it is
    if sys.version_info.major == 3:
        version = "2.7"
    else:
        version = "3.5"

    args = ['--output', testing_workdir, '--python', version]
    main_render.execute(args)
    test_path = "test_render_output_build_path_set_python-1.0-py{}{}_1.tar.bz2".format(
        version.split('.')[0],
        version.split('.')[1])
    output, error = capfd.readouterr()
    assert os.path.basename(output.rstrip()) == test_path, error
コード例 #20
0
ファイル: test_cli.py プロジェクト: mingwandroid/conda-build
def test_render_add_channel():
    """This recipe requires the conda_build_test_requirement package, which is
    only on the conda_build_test channel. This verifies that the -c argument
    works for rendering."""
    with TemporaryDirectory() as tmpdir:
        rendered_filename = os.path.join(tmpdir, 'out.yaml')
        args = ['-c', 'conda_build_test', os.path.join(metadata_dir,
                            "_recipe_requiring_external_channel"), '--file', rendered_filename]
        main_render.execute(args)
        rendered_meta = yaml.safe_load(open(rendered_filename, 'r'))
        required_package_string = [pkg for pkg in rendered_meta['requirements']['build'] if
                                   'conda_build_test_requirement' in pkg][0]
        required_package_details = required_package_string.split(' ')
        assert len(required_package_details) > 1, ("Expected version number on successful "
                                    "rendering, but got only {}".format(required_package_details))
        assert required_package_details[1] == '1.0', "Expected version number 1.0 on successful rendering, but got {}".format(required_package_details[1])
コード例 #21
0
def test_render_output_build_path_set_python(testing_workdir, capfd):
    # build the other major thing, whatever it is
    if sys.version_info.major == 3:
        version = "2.7"
    else:
        version = "3.5"

    args = [
        '--output',
        os.path.join(metadata_dir, "python_run"), '--python', version
    ]
    main_render.execute(args)
    test_path = "conda-build-test-python-run-1.0-py{}{}_0.tar.bz2".format(
        version.split('.')[0],
        version.split('.')[1])
    output, error = capfd.readouterr()
    assert os.path.basename(output.rstrip()) == test_path, error
コード例 #22
0
ファイル: test_cli.py プロジェクト: mingwandroid/conda-build
def test_render_output_build_path_set_python(testing_workdir, testing_metadata, capfd):
    testing_metadata.meta['requirements'] = {'host': ['python'],
                                             'run': ['python']}
    api.output_yaml(testing_metadata, 'meta.yaml')
    # build the other major thing, whatever it is
    if sys.version_info.major == 3:
        version = "2.7"
    else:
        version = "3.5"

    api.output_yaml(testing_metadata, 'meta.yaml')
    metadata = api.render(testing_workdir, python=version)[0][0]

    args = ['--output', testing_workdir, '--python', version]
    main_render.execute(args)

    _hash = metadata.hash_dependencies()
    test_path = "test_render_output_build_path_set_python-1.0-py{}{}{}_1.tar.bz2".format(
                                      version.split('.')[0], version.split('.')[1], _hash)
    output, error = capfd.readouterr()
    assert os.path.basename(output.rstrip()) == test_path, error
コード例 #23
0
ファイル: test_cli.py プロジェクト: mingwandroid/conda-build
def test_render_with_python_arg_CLI_reduces_subspace(capfd):
    recipe = os.path.join(metadata_dir, "..", "variants", "20_subspace_selection_cli")
    # build the package
    args = [recipe, '--variants', '{python: [2.7, 3.5]}', '--output']
    main_render.execute(args)
    out, err = capfd.readouterr()
    assert(len(out.splitlines()) == 3)

    args = [recipe, '--variants', '{python: 2.7}', '--output']
    main_render.execute(args)
    out, err = capfd.readouterr()
    assert(len(out.splitlines()) == 2)

    args = [recipe, '--variants', '{python: 3.5}', '--output']
    main_render.execute(args)
    out, err = capfd.readouterr()
    assert(len(out.splitlines()) == 1)
コード例 #24
0
def test_render_with_python_arg_CLI_reduces_subspace(capfd):
    recipe = os.path.join(metadata_dir, "..", "variants", "20_subspace_selection_cli")
    # build the package
    args = [recipe, '--variants', '{python: [2.7, 3.5]}', '--output']
    main_render.execute(args)
    out, err = capfd.readouterr()
    assert(len(out.splitlines()) == 3)

    args = [recipe, '--variants', '{python: 2.7}', '--output']
    main_render.execute(args)
    out, err = capfd.readouterr()
    assert(len(out.splitlines()) == 2)

    args = [recipe, '--variants', '{python: 3.5}', '--output']
    main_render.execute(args)
    out, err = capfd.readouterr()
    assert(len(out.splitlines()) == 1)
コード例 #25
0
ファイル: test_cli.py プロジェクト: mingwandroid/conda-build
def test_render_with_python_arg_reduces_subspace(capfd):
    recipe = os.path.join(metadata_dir, "..", "variants", "20_subspace_selection_cli")
    # build the package
    args = [recipe, '--python=2.7', '--output']
    main_render.execute(args)
    out, err = capfd.readouterr()
    assert(len(out.splitlines()) == 2)

    args = [recipe, '--python=3.5', '--output']
    main_render.execute(args)
    out, err = capfd.readouterr()
    assert(len(out.splitlines()) == 1)

    # should raise an error, because python 3.4 is not in the matrix, so we don't know which vc
    # to associate with
    args = [recipe, '--python=3.4', '--output']
    with pytest.raises(ValueError):
        main_render.execute(args)
コード例 #26
0
def test_render_with_python_arg_reduces_subspace(capfd):
    recipe = os.path.join(metadata_dir, "..", "variants", "20_subspace_selection_cli")
    # build the package
    args = [recipe, '--python=2.7', '--output']
    main_render.execute(args)
    out, err = capfd.readouterr()
    assert(len(out.splitlines()) == 2)

    args = [recipe, '--python=3.5', '--output']
    main_render.execute(args)
    out, err = capfd.readouterr()
    assert(len(out.splitlines()) == 1)

    # should raise an error, because python 3.4 is not in the matrix, so we don't know which vc
    # to associate with
    args = [recipe, '--python=3.4', '--output']
    with pytest.raises(ValueError):
        main_render.execute(args)