def _search_recipes(self, pattern=None, ignorecase=True): def get_ref(_pattern): if not isinstance(_pattern, ConanFileReference): try: ref_ = ConanFileReference.loads(_pattern) except (ConanException, TypeError): ref_ = None else: ref_ = _pattern return ref_ # Conan references in main storage if pattern: pattern = str(pattern) b_pattern = translate(pattern) b_pattern = re.compile(b_pattern, re.IGNORECASE) \ if ignorecase else re.compile(b_pattern) subdirs = list_folder_subdirs(basedir=self._server_store.store, level=5) if not pattern: return sorted( [ConanFileReference(*folder.split("/")) for folder in subdirs]) else: ret = set() for subdir in subdirs: new_ref = ConanFileReference(*subdir.split("/")) if _partial_match(b_pattern, new_ref.full_repr()): ret.add(new_ref.copy_clear_rev()) return sorted(ret)
class DeployGeneratorPermissionsTest(unittest.TestCase): """ Test files deployed by the deploy generator are copied with same permissions """ def setUp(self): conanfile1 = GenConanfile() conanfile1.with_package_file("include/header1.h", "whatever") self.ref1 = ConanFileReference("name1", "version", "user", "channel") self.client = TurboTestClient() self.client.create(self.ref1, conanfile1) layout = self.client.cache.package_layout(self.ref1) package_folder = layout.package( PackageReference(self.ref1, NO_SETTINGS_PACKAGE_ID)) self.header_path = os.path.join(package_folder, "include", "header1.h") self.assertTrue(os.path.exists(self.header_path)) @unittest.skipIf(platform.system() == "Windows", "Permissions in NIX systems only") def same_permissions_test(self): stat_info = os.stat(self.header_path) self.assertFalse(stat_info.st_mode & stat.S_IXUSR) os.chmod(self.header_path, stat_info.st_mode | stat.S_IXUSR) self.client.current_folder = temp_folder() self.client.run("install %s -g deploy" % self.ref1.full_repr()) base1_path = os.path.join(self.client.current_folder, "name1") header1_path = os.path.join(base1_path, "include", "header1.h") stat_info = os.stat(header1_path) self.assertTrue(stat_info.st_mode & stat.S_IXUSR)
def setUp(self): conanfile = GenConanfile() conanfile.with_package_file("include/header.h", "whatever") conanfile.with_package_file("my_libs/file.lib", "whatever") conanfile.with_package_file("file.config", "whatever") self.client = TurboTestClient() ref = ConanFileReference("name", "version", "user", "channel") self.client.create(ref, conanfile) self.client.current_folder = temp_folder() self.client.run("install %s -g deploy" % ref.full_repr())
def setUp(self): conanfile1 = GenConanfile() conanfile1.with_package_file("include/header1.h", "whatever") conanfile1.with_package_file("my_libs/file1.lib", "whatever") conanfile1.with_package_file("file1.config", "whatever") ref1 = ConanFileReference("name1", "version", "user", "channel") conanfile2 = GenConanfile() conanfile2.with_requirement(ref1) conanfile2.with_package_file("include_files/header2.h", "whatever") conanfile2.with_package_file("my_other_libs/file2.lib", "whatever") conanfile2.with_package_file("build/file2.config", "whatever") ref2 = ConanFileReference("name2", "version", "user", "channel") self.client = TurboTestClient() self.client.create(ref1, conanfile1) self.client.create(ref2, conanfile2) self.client.current_folder = temp_folder() self.client.run("install %s -g deploy" % ref2.full_repr())
def package_folder_build_error_test(self): """ Check package folder is not created if the build step fails """ client = TestClient() conanfile = textwrap.dedent(""" from conans import ConanFile class MyPkg(ConanFile): def build(self): raise ConanException("Build error") """) client.save({"conanfile.py": conanfile}) ref = ConanFileReference("pkg", "0.1", "danimtb", "testing") pref = PackageReference(ref, NO_SETTINGS_PACKAGE_ID, None) client.run("create . %s" % ref.full_repr(), assert_error=True) self.assertIn("Build error", client.out) package_folder = client.cache.package_layout(pref.ref).package(pref) self.assertFalse(os.path.exists(package_folder))