From 2021c1b4973c3201b1e4580d00b7351c23a831c4 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Mon, 30 Jan 2012 15:25:37 +0100 Subject: RED: policy should support verfile --- python/cache.cc | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'python') diff --git a/python/cache.cc b/python/cache.cc index b263d320..191e2204 100644 --- a/python/cache.cc +++ b/python/cache.cc @@ -229,6 +229,12 @@ static PyObject *PkgCacheGetGroups(PyObject *Self, void*) { return CppPyObject_NEW(Self,&PyGroupList_Type,Cache->GrpBegin()); } +static PyObject *PkgCacheGetPolicy(PyObject *Self, void*) { + pkgCacheFile *CacheFile = GetCpp(Self); + std::cerr << "policy: " << CacheFile->Policy << std::endl; + return CppPyObject_NEW(Self,&PyPolicy_Type,CacheFile->Policy); +} + static PyObject *PkgCacheGetPackages(PyObject *Self, void*) { pkgCache *Cache = GetCpp(Self); return CppPyObject_NEW(Self,&PyPackageList_Type,Cache->PkgBegin()); @@ -289,6 +295,7 @@ static PyGetSetDef PkgCacheGetSet[] = { {"group_count",PkgCacheGetGroupCount,0, "The number of apt_pkg.Group objects stored in the cache."}, {"groups", PkgCacheGetGroups, 0, "A list of Group objects in the cache"}, + {"policy", PkgCacheGetPolicy, 0, "The PkgPolicy for the cache"}, {"is_multi_arch", PkgCacheGetIsMultiArch, 0, "Whether the cache supports multi-arch."}, {"package_count",PkgCacheGetPackageCount,0, -- cgit v1.2.3 From 00ce4d227aef4ccde15f8cfa5b1a5582195eb639 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Mon, 30 Jan 2012 15:33:24 +0100 Subject: GREEN: policy should suppors PkgVerFile now --- po/python-apt.pot | 2 +- python/policy.cc | 3 +++ tests/test_policy.py | 13 +++++++------ 3 files changed, 11 insertions(+), 7 deletions(-) (limited to 'python') diff --git a/po/python-apt.pot b/po/python-apt.pot index a7cf0a8d..b99c36e1 100644 --- a/po/python-apt.pot +++ b/po/python-apt.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-01-30 15:16+0100\n" +"POT-Creation-Date: 2012-01-30 15:32+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/python/policy.cc b/python/policy.cc index b11e4dde..b7e648b5 100644 --- a/python/policy.cc +++ b/python/policy.cc @@ -46,6 +46,9 @@ PyObject *policy_get_priority(PyObject *self, PyObject *arg) { if (PyObject_TypeCheck(arg, &PyPackage_Type)) { pkgCache::PkgIterator pkg = GetCpp(arg); return MkPyNumber(policy->GetPriority(pkg)); + } else if (PyObject_TypeCheck(arg, &PyPackageFile_Type)) { + pkgCache::PkgFileIterator pkgfile = GetCpp(arg); + return MkPyNumber(policy->GetPriority(pkgfile)); } else { PyErr_SetString(PyExc_TypeError,"Argument must be of Package()."); return 0; diff --git a/tests/test_policy.py b/tests/test_policy.py index 2d261f5f..2aab6722 100644 --- a/tests/test_policy.py +++ b/tests/test_policy.py @@ -19,12 +19,13 @@ class TestAptPolicy(unittest.TestCase): # basic tests pkg = cache["apt"] self.assertEqual(policy.get_priority(pkg._pkg), 0) - # get verfile - ver = pkg.candidate._cand - verfile_list = ver.file_list - for verfile in verfile_list: - print verfile - self.assertEqual(policy.get_priority(verfile), 500) + # get priority for all pkgfiles + for ver in pkg.versions: + lowlevel_ver = ver._cand + for pkgfile, i in lowlevel_ver.file_list: + #print verfile, i, policy.get_priority(pkgfile) + self.assertTrue(policy.get_priority(pkgfile) > 1) + self.assertTrue(policy.get_priority(pkgfile) < 1001) if __name__ == "__main__": -- cgit v1.2.3 From 38165cbeb26313bb468dcf527a843ba55571a8f2 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Mon, 30 Jan 2012 15:39:42 +0100 Subject: REFACTOR: python/policy.cc update error to include PackageFile() too --- python/policy.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'python') diff --git a/python/policy.cc b/python/policy.cc index b7e648b5..96b83abd 100644 --- a/python/policy.cc +++ b/python/policy.cc @@ -50,7 +50,7 @@ PyObject *policy_get_priority(PyObject *self, PyObject *arg) { pkgCache::PkgFileIterator pkgfile = GetCpp(arg); return MkPyNumber(policy->GetPriority(pkgfile)); } else { - PyErr_SetString(PyExc_TypeError,"Argument must be of Package()."); + PyErr_SetString(PyExc_TypeError,"Argument must be of Package() or PackageFile()."); return 0; } } -- cgit v1.2.3