def package_is_installed(prefix, spec, pip=None): prefix_recs = tuple(PrefixData(prefix).query(spec)) if len(prefix_recs) > 1: raise AssertionError("Multiple packages installed.%s" % (dashlist(prec.dist_str() for prec in prefix_recs))) is_installed = bool(len(prefix_recs)) if is_installed and pip is True: assert prefix_recs[0].package_type in ( PackageType.VIRTUAL_PYTHON_WHEEL, PackageType.VIRTUAL_PYTHON_EGG_MANAGEABLE, PackageType.VIRTUAL_PYTHON_EGG_UNMANAGEABLE, PackageType.VIRTUAL_PYTHON_EGG_LINK, ) if is_installed and pip is False: assert prefix_recs[0].package_type in ( None, PackageType.NOARCH_GENERIC, PackageType.NOARCH_PYTHON, ) return is_installed
def test_PrefixData_return_value_contract(): pd = PrefixData(context.conda_prefix) single_prefix_rec = next(pd.iter_records()) get_result = pd.get(PackageRecord.from_objects(single_prefix_rec)) assert isinstance(get_result, PrefixRecord) query_result = pd.query('openssl') assert isinstance(query_result, tuple) assert all(isinstance(prefix_rec, PrefixRecord) for prefix_rec in query_result) iter_records_result = pd.iter_records() assert isiterable(iter_records_result) assert all(isinstance(prefix_rec, PrefixRecord) for prefix_rec in iter_records_result) is_writable_result = pd.is_writable assert is_writable_result is True or is_writable_result is False reload_result = pd.reload() assert isinstance(reload_result, PrefixData)
def test_PrefixData_return_value_contract(): pd = PrefixData(context.conda_prefix) single_prefix_rec = next(pd.iter_records()) get_result = pd.get(PackageRef.from_objects(single_prefix_rec)) assert isinstance(get_result, PrefixRecord) query_result = pd.query('openssl') assert isinstance(query_result, tuple) assert all(isinstance(prefix_rec, PrefixRecord) for prefix_rec in query_result) iter_records_result = pd.iter_records() assert isiterable(iter_records_result) assert all(isinstance(prefix_rec, PrefixRecord) for prefix_rec in iter_records_result) is_writable_result = pd.is_writable assert is_writable_result is True or is_writable_result is False reload_result = pd.reload() assert isinstance(reload_result, PrefixData)