summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog2
-rw-r--r--doc/source/library/apt_pkg.rst3
-rw-r--r--python/cache.cc9
-rw-r--r--tests/test_apt_cache.py2
-rw-r--r--tests/test_cache_invocation.py4
-rw-r--r--tests/test_group.py2
6 files changed, 15 insertions, 7 deletions
diff --git a/debian/changelog b/debian/changelog
index 99043a95..55c97813 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,6 +3,8 @@ python-apt (0.8.0~exp1) UNRELEASED; urgency=low
* Disable the old-style API, and break all packages using it
* Add an 'is_multi_arch' attribute to apt_pkg.Cache
* Add apt_pkg.Group class, wrapping pkgCache::GrpIterator
+ * Change apt_pkg.Cache() so that passing None for 'progress' results in
+ no progress output
-- Julian Andres Klode <jak@debian.org> Tue, 05 Apr 2011 10:33:54 +0200
diff --git a/doc/source/library/apt_pkg.rst b/doc/source/library/apt_pkg.rst
index 1b75a154..709648ac 100644
--- a/doc/source/library/apt_pkg.rst
+++ b/doc/source/library/apt_pkg.rst
@@ -40,7 +40,8 @@ Working with the cache
The constructor takes an optional argument which must be a subclass of
:class:`apt.progress.base.OpProgress`. This object will then be used to
display information during the cache opening process (or possible creation
- of the cache).
+ of the cache). It may also be ``None``, in which case no progress will
+ be emitted. If not given, progress will be printed to standard output.
.. describe:: cache[pkgname]
diff --git a/python/cache.cc b/python/cache.cc
index b5ebcce4..6f1585e5 100644
--- a/python/cache.cc
+++ b/python/cache.cc
@@ -299,7 +299,11 @@ static PyObject *PkgCacheNew(PyTypeObject *type,PyObject *Args,PyObject *kwds)
pkgCacheFile *Cache = new pkgCacheFile();
- if(pyCallbackInst != 0) {
+ if (pyCallbackInst == Py_None) {
+ OpProgress Prog;
+ if (Cache->Open(Prog,false) == false)
+ return HandleErrors();
+ } else if(pyCallbackInst != 0) {
// sanity check for the progress object, see #497049
if (PyObject_HasAttrString(pyCallbackInst, "done") != true) {
PyErr_SetString(PyExc_ValueError,
@@ -349,7 +353,8 @@ static char *doc_PkgCache = "Cache([progress]) -> Cache() object.\n\n"
"apt.progress.base.OpProgress() object (or similar) which reports\n"
"progress information while the cache is being opened. If this\n"
"parameter is not supplied, the progress will be reported in simple,\n"
- "human-readable text to standard output.\n\n"
+ "human-readable text to standard output. If it is None, no output\n"
+ "will be made.\n\n"
"The cache can be used like a mapping from package names to Package\n"
"objects (although only getting items is supported).";
static PySequenceMethods CacheSeq = {0,0,0,0,0,0,0,CacheContains,0,0};
diff --git a/tests/test_apt_cache.py b/tests/test_apt_cache.py
index cccfc9c8..b4cc650d 100644
--- a/tests/test_apt_cache.py
+++ b/tests/test_apt_cache.py
@@ -70,7 +70,7 @@ class TestAptCache(unittest.TestCase):
def test_low_level_pkg_provides(self):
# low level cache provides list of the pkg
- cache = apt_pkg.Cache()
+ cache = apt_pkg.Cache(progress=None)
l = cache["mail-transport-agent"].provides_list
# arbitrary number, just needs to be higher enough
self.assertTrue(len(l), 5)
diff --git a/tests/test_cache_invocation.py b/tests/test_cache_invocation.py
index 6f4014de..a89ef557 100644
--- a/tests/test_cache_invocation.py
+++ b/tests/test_cache_invocation.py
@@ -14,7 +14,7 @@ class TestCache(unittest.TestCase):
def test_wrong_invocation(self):
"""cache_invocation: Test wrong invocation."""
- apt_cache = apt_pkg.Cache(apt.progress.base.OpProgress())
+ apt_cache = apt_pkg.Cache(progress=None)
self.assertRaises(ValueError, apt_pkg.Cache, apt_cache)
self.assertRaises(ValueError, apt_pkg.Cache,
@@ -23,7 +23,7 @@ class TestCache(unittest.TestCase):
def test_proper_invocation(self):
"""cache_invocation: Test correct invocation."""
- apt_cache = apt_pkg.Cache(apt.progress.base.OpProgress())
+ apt_cache = apt_pkg.Cache(progress=None)
apt_depcache = apt_pkg.DepCache(apt_cache)
if __name__ == "__main__":
diff --git a/tests/test_group.py b/tests/test_group.py
index b705d90e..c69e4dbb 100644
--- a/tests/test_group.py
+++ b/tests/test_group.py
@@ -7,7 +7,7 @@ class TestGroup(unittest.TestCase):
def setUp(self):
apt_pkg.init()
- self.cache = apt_pkg.Cache()
+ self.cache = apt_pkg.Cache(progress=None)
def test_pkgingroup(self):
"""Check that each package belongs to the corresponding group"""