~anj/bzr-keywords/fix-505038

« back to all changes in this revision

Viewing changes to tests/test_conversion.py

  • Committer: Ian Clatworthy
  • Date: 2008-04-18 07:39:10 UTC
  • Revision ID: ian.clatworthy@canonical.com-20080418073910-h5tf45vecfmes973
initial keyword expansion code and test

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# Copyright (C) 2008 Canonical Limited.
 
2
#
 
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.
 
6
#
 
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.
 
11
#
 
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
 
15
#
 
16
 
 
17
"""Tests for keyword expansion/contraction."""
 
18
 
 
19
 
 
20
from bzrlib import tests
 
21
from bzrlib.plugins.keywords import expand_keywords
 
22
 
 
23
 
 
24
# Sample keyword expansions
 
25
_keywords = {
 
26
    'Foo': 'FOO!',
 
27
    'Bar': 'bar',
 
28
    }
 
29
 
 
30
 
 
31
# Sample unexpanded and expanded pairs
 
32
_samples = [
 
33
    ('$Foo$',           '$Foo: FOO! $'),
 
34
    ('$Foo',            '$Foo'),
 
35
    ('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$'),
 
43
    ]
 
44
 
 
45
 
 
46
class TestKeywordConversion(tests.TestCase):
 
47
 
 
48
    def test_expansion(self):
 
49
        # Test keyword expansion
 
50
        for raw, cooked in _samples:
 
51
            self.assertEqual(cooked, expand_keywords(raw, _keywords))