~ian-clatworthy/bzr-keywords/expand-keywords-hook

« back to all changes in this revision

Viewing changes to __init__.py

  • Committer: Ian Clatworthy
  • Date: 2009-04-01 09:39:44 UTC
  • Revision ID: ian.clatworthy@canonical.com-20090401093944-jgfawl39p391swos
add keywords_in_trees tests and make some code tweaks

Show diffs side-by-side

added added

removed removed

Lines of Context:
105
105
    from unittest import TestSuite, TestLoader
106
106
    from bzrlib.plugins.keywords.tests import (
107
107
         test_conversion,
 
108
         test_keywords_in_trees,
108
109
         )
109
110
    loader = TestLoader()
110
111
    suite = TestSuite()
111
112
    for module in [
112
113
        test_conversion,
 
114
        test_keywords_in_trees,
113
115
        ]:
114
116
        suite.addTests(loader.loadTestsFromModule(module))
115
117
    return suite
139
141
    lambda c: format_date(c.revision().timestamp, c.revision().timezone,
140
142
    c.config(), 'Date'))
141
143
keyword_registry.register('Author',
142
 
    lambda c: c.revision().get_apparent_author())
 
144
    lambda c: c.revision().get_apparent_authors()[0])
143
145
keyword_registry.register('Author-Email',
144
 
    lambda c: extract_email(c.revision().get_apparent_author()))
 
146
    lambda c: extract_email(c.revision().get_apparent_authors()[0]))
145
147
keyword_registry.register('Revision-Id',
146
148
    lambda c: c.revision_id())
147
149
keyword_registry.register('Path',
157
159
keyword_registry.register('Now',
158
160
    lambda c: format_date(time.time(), time.timezone, c.config(), 'Now'))
159
161
keyword_registry.register('User',
160
 
    lambda c: c.config()._get_user_id())
 
162
    lambda c: c.config().username())
161
163
keyword_registry.register('User-Email',
162
 
    lambda c: extract_email(c.config()._get_user_id()))
 
164
    lambda c: extract_email(c.config().username()))
163
165
 
164
166
 
165
167
def format_date(timestamp, offset=0, cfg=None, name=None):
181
183
 
182
184
    user-id strings have the format 'name <email>'.
183
185
    """
184
 
    if userid[-1] == '>':
 
186
    if userid and userid[-1] == '>':
185
187
        return userid[:-1].rsplit('<', 1)[1]
186
188
    else:
187
189
        return userid
230
232
        result += rest[:match.start()]
231
233
        keyword = match.group(1)
232
234
        expansion = _get_from_dicts(keyword_dicts, keyword)
233
 
        if expansion is None:
234
 
            # Unknown expansion - leave as is
235
 
            result += match.group(0)
236
 
            rest = rest[match.end():]
237
 
            continue
238
235
        if callable(expansion):
239
236
            try:
240
237
                expansion = expansion(context)
243
240
                    trace.note("error evaluating %s for keyword %s: %s",
244
241
                        expansion, keyword, err)
245
242
                expansion = "(evaluation error)"
 
243
        if expansion is None:
 
244
            # Unknown expansion - leave as is
 
245
            result += match.group(0)
 
246
            rest = rest[match.end():]
 
247
            continue
246
248
        if '$' in expansion:
247
249
            # Expansion is not safe to be collapsed later
248
250
            expansion = "(value unsafe to expand)"