From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 67D34138200 for ; Thu, 20 Jun 2013 23:21:10 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id A3901E09B7; Thu, 20 Jun 2013 23:21:09 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 29C08E09B7 for ; Thu, 20 Jun 2013 23:21:08 +0000 (UTC) Received: from hornbill.gentoo.org (hornbill.gentoo.org [94.100.119.163]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 2B83B33E438 for ; Thu, 20 Jun 2013 23:21:08 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id CDA90E545C for ; Thu, 20 Jun 2013 23:21:06 +0000 (UTC) From: "Jauhien Piatlicki" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Jauhien Piatlicki" Message-ID: <1371769998.a6bcb6178365e66ac619d42e0a356f8498a206ea.jauhien@gentoo> Subject: [gentoo-commits] proj/g-sorcery:master commit in: g_sorcery/, tests/ X-VCS-Repository: proj/g-sorcery X-VCS-Files: g_sorcery/package_db.py tests/test_package_db.py X-VCS-Directories: g_sorcery/ tests/ X-VCS-Committer: jauhien X-VCS-Committer-Name: Jauhien Piatlicki X-VCS-Revision: a6bcb6178365e66ac619d42e0a356f8498a206ea X-VCS-Branch: master Date: Thu, 20 Jun 2013 23:21:06 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: f837afc4-42f1-42bf-84d7-0ace0461a2a6 X-Archives-Hash: d3556654dab107b50e7a08ebc2e347d7 commit: a6bcb6178365e66ac619d42e0a356f8498a206ea Author: Jauhien Piatlicki (jauhien) gmail com> AuthorDate: Thu Jun 20 23:13:18 2013 +0000 Commit: Jauhien Piatlicki gmail com> CommitDate: Thu Jun 20 23:13:18 2013 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/g-sorcery.git;a=commit;h=a6bcb617 g_sorcery/package_db.py: list_package_versions --- g_sorcery/package_db.py | 7 +++++++ tests/test_package_db.py | 13 +++++++++++++ 2 files changed, 20 insertions(+) diff --git a/g_sorcery/package_db.py b/g_sorcery/package_db.py index aae3abc..0a2bdfb 100644 --- a/g_sorcery/package_db.py +++ b/g_sorcery/package_db.py @@ -268,3 +268,10 @@ class PackageDB: if not category in self.db['packages']: raise Exception('No such category: ' + category) return list(self.db['packages'][category].keys()) + + def list_package_versions(self, category, name): + if not category in self.db['packages']: + raise Exception('No such category: ' + category) + if not name in self.db['packages'][category]: + raise Exception('No such package: ' + name) + return list(self.db['packages'][category][name]) diff --git a/tests/test_package_db.py b/tests/test_package_db.py index 9977d8c..9fc0267 100644 --- a/tests/test_package_db.py +++ b/tests/test_package_db.py @@ -162,6 +162,18 @@ class TestDummyDB(unittest.TestCase): self.assertEqual(package_names, db.list_package_names(category)) self.assertRaises(Exception, db.list_package_names, 'no_such_category') + def test_list_package_versions(self): + db = DummyDB(self.tempdir.name, self.packages) + db.generate() + categories = list(set([x.category for x in self.packages])) + for category in categories: + package_names = list(set([x.name for x in self.packages if x.category == category])) + for name in package_names: + versions = [x.version for x in self.packages if x.category == category and x.name == name] + self.assertEqual(versions, db.list_package_versions(category, name)) + self.assertRaises(Exception, db.list_package_names, 'no_such_category', 'a') + self.assertRaises(Exception, db.list_package_names, categories[0], 'no_such_package') + def suite(): suite = unittest.TestSuite() @@ -177,4 +189,5 @@ def suite(): suite.addTest(TestDummyDB('test_read')) suite.addTest(TestDummyDB('test_list_categories')) suite.addTest(TestDummyDB('test_list_package_names')) + suite.addTest(TestDummyDB('test_list_package_versions')) return suite