diff options
Diffstat (limited to 'tests/test_apturl_parse.py')
-rw-r--r-- | tests/test_apturl_parse.py | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/tests/test_apturl_parse.py b/tests/test_apturl_parse.py new file mode 100644 index 0000000..d716db2 --- /dev/null +++ b/tests/test_apturl_parse.py @@ -0,0 +1,69 @@ +import unittest + +from AptUrl import Parser + + +class UrlTests(unittest.TestCase): + mapping = { 'kernel':"2.6.23-17-generic", + 'distro':"hardy" } + + testValues = ( ('apt:3ddesktop', [{'package':'3ddesktop', + 'schema': 'apt'}] ), + ('apt://3dchess', [{'package':'3dchess', + 'schema': 'apt'}] ), + ('apt+http://launchpad.net/~mvo/ppa?package=2vcard', + [{'package':'2vcard', 'schema': 'apt+http', + 'repo_url': 'http://launchpad.net/~mvo/ppa', + 'dist': '/' }] ), + ('apt+http://archive.canonical.com?package=acroread?dist=feisty?section=commercial', + [{'package':'acroread', 'schema': 'apt+http', + 'repo_url': 'http://archive.canonical.com', + 'dist': 'feisty', 'section': ['commercial']}] ), + ('apt+http://archive.canonical.com?package=acroread?keyfile=ppa-key', + [{'package':'acroread', 'schema': 'apt+http', + 'repo_url': 'http://archive.canonical.com', + 'keyfile': 'ppa-key' }]), + ('apt:2vcard?minver=1.0', + [{'package':'2vcard', 'schema': 'apt', + 'minver': '1.0' }]), + ('apt:owl,newbiedoc,python-pykaraoke?dist=gutsy', + [{'package':'owl', 'schema':'apt'}, + {'package':'newbiedoc', 'schema':'apt'}, + {'package':'python-pykaraoke', 'schema':'apt', 'dist':'gutsy'}]), + ('apt:python-pykaraoke?dist=gutsy,owl,newbiedoc', + [{'package':'python-pykaraoke', 'schema':'apt', 'dist':'gutsy'}, + {'package':'owl', 'schema':'apt'}, + {'package':'newbiedoc', 'schema':'apt'}]), + ('apt:cdda2wav?section=multiverse', + [{'package':'cdda2wav', 'section':['multiverse']}]), + ('apt:java?section=multiverse?section=universe', + [{'package':'java', 'section':['multiverse','universe']}]), + ('apt:adobe-flashplugin?channel=partner', + [{'package':'adobe-flashplugin', 'channel': 'partner'}]), + ('apt:adobe-flashplugin?channel=$distro-partner', + [{'package':'adobe-flashplugin', 'channel': 'hardy-partner'}]), + ('apt:linux-restricted-modules-$kernel', + [{'package':'linux-restricted-modules-2.6.23-17-generic'}]), + ('apt:java?section=multiverse§ion=universe', + [{'package':'java', 'section':['multiverse','universe']}]), + ('apt:java?section=multiverse§ion=universe&minver=1.0', + [{'package':'java', + 'section':['multiverse','universe'], + 'minver': "1.0" }]), + ('apt:dpkg:i386', [{ 'package' : 'dpkg:i386', + }]), + ) + + def test_valid_parse(self): + for v, e in self.testValues: + #print("Testing: '%s'" % v) + result_list = Parser.parse(v, self.mapping) + for dictionary in e: + for key in dictionary: + self.assertEqual(getattr(result_list[e.index(dictionary)], + key), dictionary[key]) + + def test_pkgname_too_long(self): + self.assertRaises( + Parser.InvalidUrlException, Parser.parse, + "apt:" + 100 * "veryverylong") |