Rev 5833: (mbp) add RuleSearcher.get_single_value() (Martin Pool) in file:///home/pqm/archives/thelove/bzr/%2Btrunk/
Canonical.com Patch Queue Manager
pqm at pqm.ubuntu.com
Thu May 5 18:05:53 UTC 2011
At file:///home/pqm/archives/thelove/bzr/%2Btrunk/
------------------------------------------------------------
revno: 5833 [merge]
revision-id: pqm at pqm.ubuntu.com-20110505180506-ddz84ffyd1kzt6r1
parent: pqm at pqm.ubuntu.com-20110505111920-5fr176fp585jw922
parent: mbp at sourcefrog.net-20110419075211-3m94qorhr0rg3gzg
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Thu 2011-05-05 18:05:06 +0000
message:
(mbp) add RuleSearcher.get_single_value() (Martin Pool)
modified:
bzrlib/rules.py properties.py-20080506032617-9k06uqalkf09ck0z-1
bzrlib/tests/test_rules.py test_properties.py-20080506033501-3p9kmuob25dho8xl-1
=== modified file 'bzrlib/rules.py'
--- a/bzrlib/rules.py 2010-11-05 20:54:32 +0000
+++ b/bzrlib/rules.py 2011-04-19 07:52:11 +0000
@@ -64,6 +64,15 @@
"""
raise NotImplementedError(self.get_selected_items)
+ def get_single_value(self, path, preference_name):
+ """Get a single preference for a single file.
+
+ :returns: The string preference value, or None.
+ """
+ for key, value in self.get_selected_items(path, [preference_name]):
+ return value
+ return None
+
class _IniBasedRulesSearcher(_RulesSearcher):
=== modified file 'bzrlib/tests/test_rules.py'
--- a/bzrlib/tests/test_rules.py 2011-01-12 01:01:53 +0000
+++ b/bzrlib/tests/test_rules.py 2011-04-19 07:52:11 +0000
@@ -43,11 +43,13 @@
rs = self.make_searcher(None)
self.assertEquals((), rs.get_items('a.txt'))
self.assertEquals((), rs.get_selected_items('a.txt', ['foo']))
+ self.assertEquals(None, rs.get_single_value('a.txt', 'foo'))
def test_get_items_file_empty(self):
rs = self.make_searcher("")
self.assertEquals((), rs.get_items('a.txt'))
self.assertEquals((), rs.get_selected_items('a.txt', ['foo']))
+ self.assertEquals(None, rs.get_single_value('a.txt', 'foo'))
def test_get_items_from_extension_match(self):
rs = self.make_searcher("[name *.txt]\nfoo=bar\na=True\n")
@@ -58,6 +60,7 @@
rs.get_items('dir/a.txt'))
self.assertEquals((('foo', 'bar'),),
rs.get_selected_items('a.txt', ['foo']))
+ self.assertEquals('bar', rs.get_single_value('a.txt', 'foo'))
def test_get_items_from_multiple_glob_match(self):
rs = self.make_searcher(
@@ -71,12 +74,15 @@
rs.get_items('x x'))
self.assertEquals((('foo', 'bar'), ('a', 'True')),
rs.get_items('y y'))
+ self.assertEquals('bar', rs.get_single_value('a.txt', 'foo'))
def test_get_items_pathname_match(self):
rs = self.make_searcher("[name ./a.txt]\nfoo=baz\n")
self.assertEquals((('foo', 'baz'),),
rs.get_items('a.txt'))
+ self.assertEquals('baz', rs.get_single_value('a.txt', 'foo'))
self.assertEquals((), rs.get_items('dir/a.txt'))
+ self.assertEquals(None, rs.get_single_value('dir/a.txt', 'foo'))
def test_get_items_match_first(self):
rs = self.make_searcher(
@@ -84,8 +90,10 @@
"[name *.txt]\nfoo=bar\na=True\n")
self.assertEquals((('foo', 'baz'),),
rs.get_items('a.txt'))
+ self.assertEquals('baz', rs.get_single_value('a.txt', 'foo'))
self.assertEquals((('foo', 'bar'), ('a', 'True')),
rs.get_items('dir/a.txt'))
+ self.assertEquals('bar', rs.get_single_value('dir/a.txt', 'foo'))
class TestStackedRulesSearcher(tests.TestCase):
@@ -107,8 +115,12 @@
"[name *.txt]\nfoo=bar\na=True\n")
self.assertEquals((('foo', 'baz'),),
rs.get_items('a.txt'))
+ self.assertEquals('baz', rs.get_single_value('a.txt', 'foo'))
+ self.assertEquals(None, rs.get_single_value('a.txt', 'a'))
self.assertEquals((('foo', 'bar'), ('a', 'True')),
rs.get_items('dir/a.txt'))
+ self.assertEquals('bar', rs.get_single_value('dir/a.txt', 'foo'))
+ self.assertEquals('True', rs.get_single_value('dir/a.txt', 'a'))
class TestRulesPath(tests.TestCase):
More information about the bazaar-commits
mailing list