def recipes_fixture(): """ Writes example recipes (based on test_case.yaml), figures out the package paths and attaches them to the Recipes instance, and cleans up afterward. """ r = Recipes('test_case.yaml') r.write_recipes() r.pkgs = {} for k, v in r.recipe_dirs.items(): r.pkgs[k] = utils.built_package_path(v) yield r for v in r.pkgs.values(): ensure_missing(v)
def recipes_fixture(): """ Writes example recipes (based on test_case.yaml), figures out the package paths and attaches them to the Recipes instance, and cleans up afterward. """ r = Recipes('test_case.yaml') r.write_recipes() r.pkgs = {} for k, v in r.recipe_dirs.items(): r.pkgs[k] = utils.built_package_paths(v) yield r for pkgs in r.pkgs.values(): for pkg in pkgs: ensure_missing(pkg)
def recipes_fixture(): """ Writes example recipes (based on test_case.yaml), figures out the package paths and attaches them to the Recipes instance, and cleans up afterward. """ rcp = Recipes('test_case.yaml') rcp.write_recipes() rcp.pkgs = {} for key, val in rcp.recipe_dirs.items(): rcp.pkgs[key] = utils.built_package_paths(val) yield rcp for pkgs in rcp.pkgs.values(): for pkg in pkgs: ensure_missing(pkg)
def single_upload(): """ Creates a randomly-named recipe and uploads it using a label so that it doesn't affect the main bioconda channel. Tests that depend on this fixture get a tuple of name, pakage, recipe dir. Cleans up when it's done. """ name = 'upload-test-' + str(uuid.uuid4()).split('-')[0] r = Recipes(''' {0}: meta.yaml: | package: name: {0} version: "0.1" '''.format(name), from_string=True) r.write_recipes() r.pkgs = {} r.pkgs[name] = utils.built_package_paths(r.recipe_dirs[name]) build.build(recipe=r.recipe_dirs[name], recipe_folder='.', pkg_paths=r.pkgs[name], docker_builder=None, mulled_test=False) pkg = r.pkgs[name][0] upload.anaconda_upload(pkg, label=TEST_LABEL) yield (name, pkg, r.recipe_dirs[name]) sp.run([ 'anaconda', '-t', os.environ.get('ANACONDA_TOKEN'), 'remove', 'bioconda/{0}'.format(name), '--force' ], stdout=sp.PIPE, stderr=sp.STDOUT, check=True, universal_newlines=True)
def single_upload(): """ Creates a randomly-named recipe and uploads it using a label so that it doesn't affect the main bioconda channel. Tests that depend on this fixture get a tuple of name, pakage, recipe dir. Cleans up when it's done. """ name = 'upload-test-' + str(uuid.uuid4()).split('-')[0] r = Recipes( ''' {0}: meta.yaml: | package: name: {0} version: "0.1" '''.format(name), from_string=True) r.write_recipes() r.pkgs = {} r.pkgs[name] = utils.built_package_paths(r.recipe_dirs[name]) build.build( recipe=r.recipe_dirs[name], recipe_folder='.', pkg_paths=r.pkgs[name], docker_builder=None, mulled_test=False ) pkg = r.pkgs[name][0] upload.anaconda_upload(pkg, label=TEST_LABEL) yield (name, pkg, r.recipe_dirs[name]) sp.run( ['anaconda', '-t', os.environ.get('ANACONDA_TOKEN'), 'remove', 'bioconda/{0}'.format(name), '--force'], stdout=sp.PIPE, stderr=sp.STDOUT, check=True, universal_newlines=True)