def test_install(self): tracer = ActionRecorder() tracer.recipe_fetched_from_cache(self.ref1) tracer.package_downloaded(self.pref1, "http://drl.com") tracer.recipe_downloaded(self.ref2, "http://drl.com") tracer.package_install_error(self.pref2, INSTALL_ERROR_MISSING, "no package found", remote_name="https://drl.com") tracer.recipe_fetched_from_cache(self.ref3) tracer.package_built(self.pref3) tracer.add_recipe_being_developed(self.ref1) install_info = tracer.get_info(False) self.assertTrue(install_info["error"]) first_installed = install_info["installed"][0] self.assertNotIn("cache", first_installed["recipe"]) self.assertFalse(first_installed["recipe"]["dependency"]) self.assertFalse(first_installed["recipe"]["downloaded"]) self.assertIsNone(first_installed["recipe"]["error"]) self.assertEqual(str(first_installed["recipe"]["id"]), "lib1/1.0@conan/stable") self.assertNotIn("cache", first_installed["recipe"]) self.assertTrue(first_installed["packages"][0]["downloaded"]) self.assertIsNone(first_installed["packages"][0]["error"]) self.assertEqual(first_installed["packages"][0]["remote"], 'http://drl.com') self.assertEqual(str(first_installed["packages"][0]["id"]), "1") second_installed = install_info["installed"][1] self.assertNotIn("cache", first_installed["recipe"]) self.assertTrue(second_installed["recipe"]["dependency"]) self.assertTrue(second_installed["recipe"]["downloaded"]) self.assertIsNone(second_installed["recipe"]["error"]) self.assertEqual(str(second_installed["recipe"]["id"]), "lib2/1.0@conan/stable") self.assertNotIn("cache", first_installed["packages"][0]) self.assertEqual( second_installed["packages"][0]["error"], { 'type': 'missing', 'description': 'no package found', 'remote': 'https://drl.com' }) self.assertEqual(second_installed["packages"][0]["remote"], 'https://drl.com') self.assertEqual(str(second_installed["packages"][0]["id"]), "2") third_installed = install_info["installed"][2] self.assertTrue(third_installed["recipe"]["dependency"]) self.assertNotIn("cache", first_installed["packages"][0]) self.assertFalse(third_installed["packages"][0]["error"]) self.assertTrue(third_installed["packages"][0]["built"]) self.assertIsNone(third_installed["packages"][0]["remote"]) self.assertEqual(str(third_installed["packages"][0]["id"]), "3")
def incomplete_process_test(self): tracer = ActionRecorder() tracer.recipe_install_error(self.ref1, INSTALL_ERROR_NETWORK, "SSL wtf", "http://drl.com") tracer.add_recipe_being_developed(self.ref1) install_info = tracer.get_info() self.assertTrue(install_info["error"]) self.assertEquals(install_info["installed"][0]["packages"], []) self.assertEquals(install_info["installed"][0]["recipe"]["dependency"], False)
def incomplete_process_test(self): tracer = ActionRecorder() tracer.recipe_install_error(self.ref1, INSTALL_ERROR_NETWORK, "SSL wtf", "http://drl.com") tracer.add_recipe_being_developed(self.ref1) install_info = tracer.get_info() self.assertTrue(install_info["error"]) self.assertEquals(install_info["installed"][0]["packages"], []) self.assertEquals(install_info["installed"][0]["recipe"]["dependency"], False)
def create(self, conanfile_path, name=None, version=None, user=None, channel=None, profile_name=None, settings=None, options=None, env=None, test_folder=None, not_export=False, build_modes=None, keep_source=False, keep_build=False, verify=None, manifests=None, manifests_interactive=None, remote_name=None, update=False, cwd=None, test_build_folder=None): """ API method to create a conan package :param test_folder: default None - looks for default 'test' or 'test_package' folder), string - test_folder path False - disabling tests """ settings = settings or [] options = options or [] env = env or [] try: cwd = cwd or os.getcwd() recorder = ActionRecorder() conanfile_path = _get_conanfile_path(conanfile_path, cwd, py=True) reference, conanfile = self._loader.load_export(conanfile_path, name, version, user, channel) # Make sure keep_source is set for keep_build keep_source = keep_source or keep_build # Forcing an export! if not not_export: cmd_export(conanfile_path, conanfile, reference, keep_source, self._user_io.out, self._client_cache, self._plugin_manager) if build_modes is None: # Not specified, force build the tested library build_modes = [conanfile.name] manifests = _parse_manifests_arguments(verify, manifests, manifests_interactive, cwd) manifest_folder, manifest_interactive, manifest_verify = manifests profile = profile_from_args(profile_name, settings, options, env, cwd, self._client_cache) manager = self._init_manager(recorder) recorder.add_recipe_being_developed(reference) create(reference, manager, self._user_io, profile, remote_name, update, build_modes, manifest_folder, manifest_verify, manifest_interactive, keep_build, test_build_folder, test_folder, conanfile_path) return recorder.get_info() except ConanException as exc: recorder.error = True exc.info = recorder.get_info() raise
def test_install(self): tracer = ActionRecorder() tracer.recipe_fetched_from_cache(self.ref1) tracer.package_downloaded(self.ref_p1, "http://drl.com") tracer.recipe_downloaded(self.ref2, "http://drl.com") tracer.package_install_error(self.ref_p2, INSTALL_ERROR_MISSING, "no package found", remote="https://drl.com") tracer.recipe_fetched_from_cache(self.ref3) tracer.package_built(self.ref_p3) tracer.add_recipe_being_developed(self.ref1) install_info = tracer.get_info() self.assertTrue(install_info["error"]) first_installed = install_info["installed"][0] self.assertTrue(first_installed["recipe"]["cache"]) self.assertFalse(first_installed["recipe"]["dependency"]) self.assertFalse(first_installed["recipe"]["downloaded"]) self.assertIsNone(first_installed["recipe"]["error"]) self.assertEquals(str(first_installed["recipe"]["id"]), "lib1/1.0@conan/stable") self.assertFalse(first_installed["packages"][0]["cache"]) self.assertTrue(first_installed["packages"][0]["downloaded"]) self.assertIsNone(first_installed["packages"][0]["error"]) self.assertEquals(first_installed["packages"][0]["remote"], 'http://drl.com') self.assertEquals(str(first_installed["packages"][0]["id"]), "1") second_installed = install_info["installed"][1] self.assertFalse(second_installed["recipe"]["cache"]) self.assertTrue(second_installed["recipe"]["dependency"]) self.assertTrue(second_installed["recipe"]["downloaded"]) self.assertIsNone(second_installed["recipe"]["error"]) self.assertEquals(str(second_installed["recipe"]["id"]), "lib2/1.0@conan/stable") self.assertFalse(second_installed["packages"][0]["cache"]) self.assertEquals(second_installed["packages"][0]["error"], {'type': 'missing', 'description': 'no package found', 'remote': 'https://drl.com'}) self.assertEquals(second_installed["packages"][0]["remote"], 'https://drl.com') self.assertEquals(str(second_installed["packages"][0]["id"]), "2") third_installed = install_info["installed"][2] self.assertTrue(third_installed["recipe"]["dependency"]) self.assertFalse(third_installed["packages"][0]["cache"]) self.assertFalse(third_installed["packages"][0]["error"]) self.assertTrue(third_installed["packages"][0]["built"]) self.assertIsNone(third_installed["packages"][0]["remote"]) self.assertEquals(str(third_installed["packages"][0]["id"]), "3")