END_TEST START_TEST(test_goal_erase_clean_deps) { DnfSack *sack = test_globals.sack; DnfPackage *pkg = by_name_repo(sack, "flying", HY_SYSTEM_REPO_NAME); // by default, leave dependencies alone: HyGoal goal = hy_goal_create(sack); hy_goal_erase(goal, pkg); hy_goal_run(goal); assert_iueo(goal, 0, 0, 1, 0); hy_goal_free(goal); // allow deleting dependencies: goal = hy_goal_create(sack); hy_goal_erase_flags(goal, pkg, HY_CLEAN_DEPS); fail_unless(hy_goal_run(goal) == 0); assert_iueo(goal, 0, 0, 2, 0); hy_goal_free(goal); // test userinstalled specification: DnfPackage *penny_pkg = by_name_repo(sack, "penny-lib", HY_SYSTEM_REPO_NAME); goal = hy_goal_create(sack); hy_goal_erase_flags(goal, pkg, HY_CLEAN_DEPS); hy_goal_userinstalled(goal, penny_pkg); // having the same solvable twice in a goal shouldn't break anything: hy_goal_userinstalled(goal, pkg); fail_unless(hy_goal_run(goal) == 0); assert_iueo(goal, 0, 0, 1, 0); hy_goal_free(goal); g_object_unref(penny_pkg); g_object_unref(pkg); }
static PyObject * userinstalled(_GoalObject *self, PyObject *pkg) { HifPackage *cpkg = packageFromPyObject(pkg); int ret; if (cpkg == NULL) return NULL; ret = hy_goal_userinstalled(self->goal, cpkg); if (!ret) Py_RETURN_TRUE; Py_RETURN_FALSE; }
static void userinstalled(HySack sack, HyGoal goal, const char *name) { HyQuery q = hy_query_create(sack); hy_query_filter(q, HY_PKG_NAME, HY_EQ, name); hy_query_filter(q, HY_PKG_REPONAME, HY_EQ, HY_SYSTEM_REPO_NAME); HyPackageList plist = hy_query_run(q); HyPackage pkg; int i; FOR_PACKAGELIST(pkg, plist, i) hy_goal_userinstalled(goal, pkg); hy_packagelist_free(plist); hy_query_free(q); }
static void userinstalled(DnfSack *sack, HyGoal goal, const char *name) { HyQuery q = hy_query_create(sack); hy_query_filter(q, HY_PKG_NAME, HY_EQ, name); hy_query_filter(q, HY_PKG_REPONAME, HY_EQ, HY_SYSTEM_REPO_NAME); GPtrArray *plist = hy_query_run(q); DnfPackage *pkg; guint i; for(i = 0; i < plist->len; i++) { pkg = g_ptr_array_index (plist, i); hy_goal_userinstalled(goal, pkg); } g_ptr_array_unref(plist); hy_query_free(q); }
uint32_t TDNFGoalSetUserInstalled( HyGoal hGoal, HyPackageList hPkgList ) { uint32_t dwError = 0; int i = 0; HyPackage hPkg = NULL; if(!hGoal || !hPkgList) { dwError = ERROR_TDNF_INVALID_PARAMETER; BAIL_ON_TDNF_ERROR(dwError); } FOR_PACKAGELIST(hPkg, hPkgList, i) { dwError = hy_goal_userinstalled(hGoal, hPkg); BAIL_ON_TDNF_HAWKEY_ERROR(dwError); }