diff options
| author | Michael Vogt <michael.vogt@ubuntu.com> | 2008-07-04 20:12:53 +0200 |
|---|---|---|
| committer | Michael Vogt <michael.vogt@ubuntu.com> | 2008-07-04 20:12:53 +0200 |
| commit | 7625577a6974aa580877cf5d5ed22a6e663843fb (patch) | |
| tree | 6e8c517437b4375ae67a1d1b61979953c2abf460 | |
| parent | ccf689a426760a69b77394abbcddf7897cbd6488 (diff) | |
| download | python-apt-7625577a6974aa580877cf5d5ed22a6e663843fb.tar.gz | |
* tests/test_hashsums.py:
- add tests for the hashsum code
| -rw-r--r-- | debian/changelog | 2 | ||||
| -rw-r--r-- | po/python-apt.pot | 2 | ||||
| -rw-r--r-- | python/apt_pkgmodule.cc | 1 | ||||
| -rw-r--r-- | tests/test_hashsums.py | 64 |
4 files changed, 68 insertions, 1 deletions
diff --git a/debian/changelog b/debian/changelog index 8d54596a..e15a9a96 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,6 +4,8 @@ python-apt (0.7.7) unstable; urgency=low - fix bug in hashsum calculation when the original string contains \0 charackters (thanks to Celso Providelo and Ryan Hass for the test-case) LP: #243630 + * tests/test_hashsums.py: + - add tests for the hashsum code -- Michael Vogt <mvo@debian.org> Fri, 04 Jul 2008 19:53:28 +0200 diff --git a/po/python-apt.pot b/po/python-apt.pot index 71c9b4a7..c8c93668 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: 2008-07-04 19:45+0200\n" +"POT-Creation-Date: 2008-07-04 20:08+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/python/apt_pkgmodule.cc b/python/apt_pkgmodule.cc index dea34958..fd7a83cd 100644 --- a/python/apt_pkgmodule.cc +++ b/python/apt_pkgmodule.cc @@ -218,6 +218,7 @@ static PyObject *sha1sum(PyObject *Self,PyObject *Args) char *s; Py_ssize_t len; SHA1Summation Sum; + PyString_AsStringAndSize(Obj, &s, &len); Sum.Add((const unsigned char*)s, len); return CppPyString(Sum.Result().Value()); } diff --git a/tests/test_hashsums.py b/tests/test_hashsums.py new file mode 100644 index 00000000..7fa6eb60 --- /dev/null +++ b/tests/test_hashsums.py @@ -0,0 +1,64 @@ +#!/usr/bin/python + +import unittest +import apt_pkg + +class testHashes(unittest.TestCase): + " test the hashsum functions against strings and files " + + def testMD5(self): + # simple + s = "foo" + s_md5 = "acbd18db4cc2f85cedef654fccc4a4d8" + res = apt_pkg.md5sum(s) + self.assert_(res == s_md5) + # file + res = apt_pkg.md5sum(open("hashsum_test.data")) + self.assert_(res == s_md5) + # with zero (\0) in the string + s = "foo\0bar" + s_md5 = "f6f5f8cd0cb63668898ba29025ae824e" + res = apt_pkg.md5sum(s) + self.assert_(res == s_md5) + # file + res = apt_pkg.md5sum(open("hashsum_test_with_zero.data")) + self.assert_(res == s_md5) + + def testSHA1(self): + # simple + s = "foo" + s_hash = "0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33" + res = apt_pkg.sha1sum(s) + self.assert_(res == s_hash) + # file + res = apt_pkg.sha1sum(open("hashsum_test.data")) + self.assert_(res == s_hash) + # with zero (\0) in the string + s = "foo\0bar" + s_hash = "e2c300a39311a2dfcaff799528415cb74c19317f" + res = apt_pkg.sha1sum(s) + self.assert_(res == s_hash) + # file + res = apt_pkg.sha1sum(open("hashsum_test_with_zero.data")) + self.assert_(res == s_hash) + + def testSHA256(self): + # simple + s = "foo" + s_hash = "2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae" + res = apt_pkg.sha256sum(s) + self.assert_(res == s_hash) + # file + res = apt_pkg.sha256sum(open("hashsum_test.data")) + self.assert_(res == s_hash) + # with zero (\0) in the string + s = "foo\0bar" + s_hash = "d6b681bfce7155d44721afb79c296ef4f0fa80a9dd6b43c5cf74dd0f64c85512" + res = apt_pkg.sha256sum(s) + self.assert_(res == s_hash) + # file + res = apt_pkg.sha256sum(open("hashsum_test_with_zero.data")) + self.assert_(res == s_hash) + +if __name__ == "__main__": + unittest.main() |
