END_TEST START_TEST(test_hif_sack_knows_version) { HifSack *sack = test_globals.sack; fail_unless(hif_sack_knows(sack, "penny", "4", HY_NAME_ONLY)); fail_if(hif_sack_knows(sack, "penny", "5", HY_NAME_ONLY)); }
END_TEST START_TEST(test_hif_sack_knows_glob) { HifSack *sack = test_globals.sack; fail_if(hif_sack_knows(sack, "penny-l*", "4", HY_NAME_ONLY)); fail_unless(hif_sack_knows(sack, "penny-l*", "4", HY_NAME_ONLY|HY_GLOB)); fail_if(hif_sack_knows(sack, "penny-l*1", "4", HY_NAME_ONLY|HY_GLOB)); }
END_TEST START_TEST(test_hif_sack_knows) { HifSack *sack = test_globals.sack; fail_if(hif_sack_knows(sack, "penny-lib-DEVEL", NULL, 0)); fail_unless(hif_sack_knows(sack, "penny-lib-DEVEL", NULL, HY_ICASE|HY_NAME_ONLY)); fail_if(hif_sack_knows(sack, "P", NULL, HY_NAME_ONLY)); fail_unless(hif_sack_knows(sack, "P", NULL, 0)); }
static inline int is_real_name(HyNevra nevra, HifSack *sack, int flags) { flags |= HY_NAME_ONLY; int glob_version = (flags & HY_GLOB) && is_glob_pattern(nevra->version); char *version = nevra->version; if (nevra->name == NULL && !glob_version) return 1; if (glob_version) version = NULL; if (!is_glob_pattern(nevra->name)) flags &= ~HY_GLOB; if (hif_sack_knows(sack, nevra->name, version, flags) == 0) return 0; return 1; }
int hy_possibilities_next_reldep(HyPossibilities iter, HyReldep *out_reldep) { if (iter->type != TYPE_RELDEP_NEW) return -1; iter->type = TYPE_RELDEP_END; char *name, *evr = NULL; int cmp_type = 0; if (parse_reldep_str(iter->subject, &name, &evr, &cmp_type) == -1) return -1; if (hif_sack_knows(iter->sack, name, NULL, iter->flags)) { *out_reldep = hy_reldep_create(iter->sack, name, cmp_type, evr); g_free(name); g_free(evr); if (*out_reldep == NULL) return -1; return 0; } return -1; }
static PyObject * _knows(_SackObject *self, PyObject *args, PyObject *kwds) { const char *name; const char *version = NULL; int name_only = 0, icase = 0, glob = 0; const char *kwlist[] = {"name", "version", "name_only", "icase", "glob", NULL}; if (!PyArg_ParseTupleAndKeywords(args, kwds, "s|ziii", (char**) kwlist, &name, &version, &name_only, &icase, &glob)) return NULL; int flags = 0; if (name_only) flags |= HY_NAME_ONLY; if (icase) flags |= HY_ICASE; if (glob) flags |= HY_GLOB; return PyLong_FromLong(hif_sack_knows(self->sack, name, version, flags)); }