1
# Copyright (C) 2008 Canonical Limited.
3
# This program is free software; you can redistribute it and/or modify
4
# it under the terms of the GNU General Public License as published by
5
# the Free Software Foundation; version 2 of the License.
7
# This program is distributed in the hope that it will be useful,
8
# but WITHOUT ANY WARRANTY; without even the implied warranty of
9
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10
# GNU General Public License for more details.
12
# You should have received a copy of the GNU General Public License
13
# along with this program; if not, write to the Free Software
14
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17
"""Tests for keyword expansion/contraction."""
20
from bzrlib import tests
21
from bzrlib.plugins.keywords import expand_keywords
24
# Sample keyword expansions
31
# Sample unexpanded and expanded pairs
33
('$Foo$', '$Foo: FOO! $'),
36
('$Foo$ xyz', '$Foo: FOO! $ xyz'),
37
('abc $Foo$', 'abc $Foo: FOO! $'),
38
('abc $Foo$ xyz', 'abc $Foo: FOO! $ xyz'),
39
('$Foo$$Bar$', '$Foo: FOO! $$Bar: bar $'),
40
('abc $Foo$ xyz $Bar$ qwe', 'abc $Foo: FOO! $ xyz $Bar: bar $ qwe'),
41
('$Unknown$$Bar$', '$Unknown$$Bar: bar $'),
42
('$Foo$$Unknown$', '$Foo: FOO! $$Unknown$'),
46
class TestKeywordConversion(tests.TestCase):
48
def test_expansion(self):
49
# Test keyword expansion
50
for raw, cooked in _samples:
51
self.assertEqual(cooked, expand_keywords(raw, _keywords))