static PyObject * install(_GoalObject *self, PyObject *args, PyObject *kwds) { DnfPackage *pkg = NULL; HySelector sltr = NULL; int flags = 0; g_autoptr(GError) error = NULL; if (!args_pkg_sltr_parse(args, kwds, &pkg, &sltr, &flags, HY_WEAK_SOLV)) return NULL; if (flags & HY_WEAK_SOLV) { if (pkg) { hy_goal_install_optional(self->goal, pkg); } else { hy_goal_install_selector_optional(self->goal, sltr, &error); } } else { if (pkg) { hy_goal_install(self->goal, pkg); } else { hy_goal_install_selector(self->goal, sltr, &error); } } return op_error2exc(error); }
END_TEST START_TEST(test_goal_install_optional) { HySelector sltr; HyGoal goal = hy_goal_create(test_globals.sack); // test optional selector installation sltr = hy_selector_create(test_globals.sack); hy_selector_set(sltr, HY_PKG_NAME, HY_EQ, "hello"); fail_if(!hy_goal_install_selector_optional(goal, sltr, NULL)); fail_if(hy_goal_run(goal)); hy_selector_free(sltr); assert_iueo(goal, 0, 0, 0, 0); // test optional package installation DnfPackage *pkg = get_latest_pkg(test_globals.sack, "hello"); fail_if(hy_goal_install_optional(goal, pkg)); fail_if(hy_goal_run(goal)); assert_iueo(goal, 0, 0, 0, 0); g_object_unref(pkg); hy_goal_free(goal); }