def test_latest_versions_bad_pkg(self, build_lb_image_for_env_conda): """Test latest_version command""" mrg = Conda3PackageManager() lb = build_lb_image_for_env_conda[0] username = build_lb_image_for_env_conda[1] with pytest.raises(ValueError): mrg.latest_versions(["asdasdfdasdff", "cdutil"], lb, username)
def test_list_versions_badpackage(self, build_lb_image_for_env_conda): """Test list_versions command""" mrg = Conda3PackageManager() lb = build_lb_image_for_env_conda[0] username = build_lb_image_for_env_conda[1] with pytest.raises(ValueError): mrg.list_versions("gigantumasdfasdfasdf", lb, username)
def test_is_valid_errors(self, build_lb_image_for_env_conda): """Test list_versions command""" pkgs = [{"manager": "conda3", "package": "numpy", "version": "1.14.2"}, {"manager": "conda3", "package": "plotly", "version": "100.00"}, {"manager": "conda3", "package": "cdutil", "version": ""}, {"manager": "conda3", "package": "asdfasdfasdf", "version": ""}] mrg = Conda3PackageManager() lb = build_lb_image_for_env_conda[0] username = build_lb_image_for_env_conda[1] result = mrg.validate_packages(pkgs, lb, username) assert result[0].package == "numpy" assert result[0].version == "1.14.2" assert result[0].error is False assert result[1].package == "plotly" assert result[1].version == "100.00" assert result[1].error is True assert result[2].package == "cdutil" assert result[2].version == "8.1" assert result[2].error is False assert result[3].package == "asdfasdfasdf" assert result[3].version == "" assert result[3].error is True
def test_search_empty(self, build_lb_image_for_env_conda): """Test search command with no result""" mrg = Conda3PackageManager() lb = build_lb_image_for_env_conda[0] username = build_lb_image_for_env_conda[1] result = mrg.search("asdffdghdfghdraertasdfsadfa", lb, username) assert type(result) == list assert len(result) == 0
def test_list_versions(self, build_lb_image_for_env_conda): """Test list_versions command""" mrg = Conda3PackageManager() lb = build_lb_image_for_env_conda[0] username = build_lb_image_for_env_conda[1] result = mrg.list_versions("python-coveralls", lb, username) assert len(result) == 4 assert result[2] == "2.7.0" assert result[0] == "2.9.1"
def test_search_no_wildcard(self, build_lb_image_for_env_conda): """Test search command""" mrg = Conda3PackageManager() lb = build_lb_image_for_env_conda[0] username = build_lb_image_for_env_conda[1] result = mrg.search("reque", lb, username) assert type(result) == list assert type(result[0]) == str assert len(result) > 6 assert "requests" in result
def test_latest_versions(self, build_lb_image_for_env_conda): """Test latest_version command""" mrg = Conda3PackageManager() lb = build_lb_image_for_env_conda[0] username = build_lb_image_for_env_conda[1] pkgs = ["cdutil", "python-coveralls", "nltk"] result = mrg.latest_versions(pkgs, lb, username) assert result[0] == '8.1' # cdutil assert result[1] == '2.9.1' # python-coveralls assert result[2] == '3.2.5' # nltk
def test_generate_docker_install_snippet_single(self): """Test generate_docker_install_snippet command """ mrg = Conda3PackageManager() packages = [{'name': 'mypackage', 'version': '3.1.4'}] result = mrg.generate_docker_install_snippet(packages) assert result == ['RUN conda install -yq mypackage=3.1.4'] result = mrg.generate_docker_install_snippet(packages, single_line=True) assert result == ['RUN conda install -yq mypackage=3.1.4']
def get_package_manager(manager: str) -> PackageManager: """Helper class to instantiate a package manager based on manager string""" if manager in ["pip2", "pip3", "pip"]: return PipPackageManager() elif manager == "conda2": return Conda2PackageManager() elif manager == "conda3": return Conda3PackageManager() elif manager in ["apt", "apt-get"]: return AptPackageManager() else: raise ValueError(f"Unsupported package manager `{manager}`")
def test_latest_version(self, build_lb_image_for_env_conda): """Test latest_version command""" mrg = Conda3PackageManager() lb = build_lb_image_for_env_conda[0] username = build_lb_image_for_env_conda[1] # Note, "python-coveralls" is an installed package at 2.7.0 with latest being 2.9.1 result = mrg.latest_version("python-coveralls", lb, username) assert result == '2.9.1' # python-coveralls is a non-installed package result = mrg.latest_version("cdutil", lb, username) assert result == '8.1'
def test_list_available_updates(self, build_lb_image_for_env_conda): """Test list_available_updates command Note, if the contents of the container change, this test will break and need to be updated. Because of this, only limited asserts are made to make sure things are coming back in a reasonable format """ mrg = Conda3PackageManager() lb = build_lb_image_for_env_conda[0] username = build_lb_image_for_env_conda[1] result = mrg.list_available_updates(lb, username) # TODO: Right now list_available_updates() is a noop and can possibly be removed assert result == []
def test_list_installed_packages(self, build_lb_image_for_env_conda): """Test list_installed_packages command Note, if the contents of the container change, this test will break and need to be updated. Because of this, only limited asserts are made to make sure things are coming back in a reasonable format """ mrg = Conda3PackageManager() lb = build_lb_image_for_env_conda[0] username = build_lb_image_for_env_conda[1] result = mrg.list_installed_packages(lb, username) assert type(result) == list assert len(result) >= 14 assert type(result[0]) == dict assert type(result[0]['name']) == str assert type(result[0]['version']) == str
def test_is_valid_good(self, build_lb_image_for_env_conda): """Test valid packages command""" pkgs = [{"manager": "conda3", "package": "nltk", "version": "3.2.2"}, {"manager": "conda3", "package": "cdutil", "version": ""}] mrg = Conda3PackageManager() lb = build_lb_image_for_env_conda[0] username = build_lb_image_for_env_conda[1] result = mrg.validate_packages(pkgs, lb, username) assert result[0].package == "nltk" assert result[0].version == "3.2.2" assert result[0].error is False assert result[1].package == "cdutil" assert result[1].version == "8.1" assert result[1].error is False
def test_package_metadata(self, build_lb_image_for_env_conda): """Test getting package metadata""" mrg = Conda3PackageManager() lb = build_lb_image_for_env_conda[0] username = build_lb_image_for_env_conda[1] result = mrg.get_packages_metadata(['nltk', 'cdutil', 'numpy', 'sadfasfasf'], lb, username) assert len(result) == 4 assert result[0].package == "nltk" assert result[0].description == 'Natural Language Toolkit' assert result[0].docs_url == 'http://www.nltk.org/' assert result[0].latest_version == '3.2.5' assert result[1].package == "cdutil" assert result[1].description == 'A set of tools to manipulate climate data' assert result[1].docs_url == 'http://anaconda.org/conda-forge/cdutil' assert result[1].latest_version == '8.1' assert result[2].package == "numpy" assert result[2].description == 'Array processing for numbers, strings, records, and objects.' assert result[2].docs_url == 'https://docs.scipy.org/doc/numpy/reference/' assert isinstance(result[2].docs_url, str) is True assert result[3].package == "sadfasfasf" assert result[3].description is None assert result[3].docs_url is None assert result[3].latest_version is None