~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_generate_ids.py

  • Committer: Aaron Bentley
  • Date: 2007-08-13 14:00:59 UTC
  • mto: (2681.5.3 bzr-mail)
  • mto: This revision was merged to the branch mainline in revision 2736.
  • Revision ID: abentley@panoramicfeedback.com-20070813140059-04k01bfueilqvg10
Update text, fix whitespace issues

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2006, 2007, 2009, 2011 Canonical Ltd
 
1
# Copyright (C) 2006 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
12
12
#
13
13
# You should have received a copy of the GNU General Public License
14
14
# along with this program; if not, write to the Free Software
15
 
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
16
 
17
17
"""Tests for bzrlib/generate_ids.py"""
18
18
 
 
19
import re
 
20
 
19
21
from bzrlib import (
20
22
    generate_ids,
21
23
    tests,
50
52
        self.assertStartsWith(gen_file_id('..gam.py'), 'gam.py-')
51
53
        self.assertStartsWith(gen_file_id('..Mwoo oof\t m'), 'mwoooofm-')
52
54
 
53
 
        # we remove unicode characters, and still don't end up with a
 
55
        # we remove unicode characters, and still don't end up with a 
54
56
        # hidden file id
55
57
        self.assertStartsWith(gen_file_id(u'\xe5\xb5.txt'), 'txt-')
56
58
 
62
64
        # Test both case squashing and length restriction
63
65
        fid = gen_file_id('A'*50 + '.txt')
64
66
        self.assertStartsWith(fid, 'a'*20 + '-')
65
 
        self.assertTrue(len(fid) < 60)
 
67
        self.failUnless(len(fid) < 60)
66
68
 
67
69
        # restricting length happens after the other actions, so
68
70
        # we preserve as much as possible
69
71
        fid = gen_file_id('\xe5\xb5..aBcd\tefGhijKLMnop\tqrstuvwxyz')
70
72
        self.assertStartsWith(fid, 'abcdefghijklmnopqrst-')
71
 
        self.assertTrue(len(fid) < 60)
 
73
        self.failUnless(len(fid) < 60)
72
74
 
73
75
    def test_file_ids_are_ascii(self):
74
76
        tail = r'-\d{14}-[a-z0-9]{16}-\d+'
110
112
class TestGenRevisionId(tests.TestCase):
111
113
    """Test generating revision ids"""
112
114
 
 
115
    def assertMatchesRe(self, regex, text):
 
116
        """Make sure text is matched by the regex given"""
 
117
        if re.match(regex, text) is None:
 
118
            self.fail('Pattern %s did not match text %s' % (regex, text))
 
119
 
113
120
    def assertGenRevisionId(self, regex, username, timestamp=None):
114
121
        """gen_revision_id should create a revision id matching the regex"""
115
122
        revision_id = generate_ids.gen_revision_id(username, timestamp)
116
 
        self.assertContainsRe(revision_id, '^'+regex+'$')
 
123
        self.assertMatchesRe(regex, revision_id)
117
124
        # It should be a utf8 revision_id, not a unicode one
118
125
        self.assertIsInstance(revision_id, str)
119
126
        # gen_revision_id should always return ascii revision ids.