~maxb/bzr-svn/fetch-svn-rev-info-progress-bar

« back to all changes in this revision

Viewing changes to tests/test_mapping.py

  • Committer: Max Bowsher
  • Date: 2010-07-30 22:50:54 UTC
  • mfrom: (3324.1.37 trunk)
  • Revision ID: maxb@f2s.com-20100730225054-un1llcngdofg585w
Merge trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
# -*- coding: utf-8 -*-
2
2
 
3
3
# Copyright (C) 2005-2009 Jelmer Vernooij <jelmer@samba.org>
4
 
 
 
4
 
5
5
# This program is free software; you can redistribute it and/or modify
6
6
# it under the terms of the GNU General Public License as published by
7
7
# the Free Software Foundation; either version 2 of the License, or
38
38
from bzrlib.plugins.svn.mapping import (
39
39
    estimate_bzr_ancestors,
40
40
    escape_svn_path,
41
 
    generate_revision_metadata, 
 
41
    generate_revision_metadata,
42
42
    get_roundtrip_ancestor_revids,
43
43
    is_bzr_revision_fileprops,
44
44
    is_bzr_revision_revprops,
45
45
    mapping_registry,
46
46
    parse_merge_property,
47
 
    parse_revision_metadata, 
 
47
    parse_revision_metadata,
48
48
    parse_revid_property,
49
49
    unescape_svn_path,
50
50
    )
64
64
 
65
65
 
66
66
class MetadataMarshallerTests(TestCase):
 
67
 
67
68
    def test_generate_revision_metadata_none(self):
68
 
        self.assertEquals("", 
 
69
        self.assertEquals("",
69
70
                generate_revision_metadata(None, None, None, None))
70
71
 
71
72
    def test_generate_revision_metadata_committer(self):
72
 
        self.assertEquals("committer: bla\n", 
 
73
        self.assertEquals("committer: bla\n",
73
74
                generate_revision_metadata(None, None, "bla", None))
74
75
 
75
76
    def test_generate_revision_metadata_timestamp(self):
76
 
        self.assertEquals("timestamp: 2005-06-30 17:38:52.350850105 +0000\n", 
77
 
                generate_revision_metadata(1120153132.350850105, 0, 
 
77
        self.assertEquals("timestamp: 2005-06-30 17:38:52.350850105 +0000\n",
 
78
                generate_revision_metadata(1120153132.350850105, 0,
78
79
                    None, None))
79
 
            
 
80
 
80
81
    def test_generate_revision_metadata_properties(self):
81
 
        self.assertEquals("properties: \n" + 
 
82
        self.assertEquals("properties: \n" +
82
83
                "\tpropbla: bloe\n" +
83
84
                "\tpropfoo: bla\n",
84
85
                generate_revision_metadata(None, None,
85
86
                    None, {"propbla": "bloe", "propfoo": "bla"}))
86
87
 
87
88
    def test_generate_revision_metadata_properties_newline(self):
88
 
        self.assertEquals("properties: \n" + 
 
89
        self.assertEquals("properties: \n" +
89
90
                "\tpropbla: bloe\n" +
90
91
                "\tpropbla: bla\n",
91
92
                generate_revision_metadata(None, None,
118
119
 
119
120
    def test_parse_revision_metadata_properties(self):
120
121
        rev = Revision('someid')
121
 
        parse_revision_metadata("properties: \n" + 
122
 
                                "\tfoo: bar\n" + 
 
122
        parse_revision_metadata("properties: \n" +
 
123
                                "\tfoo: bar\n" +
123
124
                                "\tha: ha\n", rev)
124
125
        self.assertEquals({"foo": "bar", "ha": "ha"}, rev.properties)
125
126
 
126
127
    def test_parse_revision_metadata_properties_newline(self):
127
128
        rev = Revision('someid')
128
 
        parse_revision_metadata("properties: \n" + 
129
 
                                "\tfoo: bar\n" + 
 
129
        parse_revision_metadata("properties: \n" +
 
130
                                "\tfoo: bar\n" +
130
131
                                "\tfoo: bar2\n" +
131
132
                                "\tha: ha\n", rev)
132
133
        self.assertEquals({"foo": "bar\nbar2", "ha": "ha"}, rev.properties)
133
134
 
134
135
    def test_parse_revision_metadata_no_colon(self):
135
136
        rev = Revision('someid')
136
 
        self.assertRaises(InvalidPropertyValue, 
 
137
        self.assertRaises(InvalidPropertyValue,
137
138
                lambda: parse_revision_metadata("bla", rev))
138
139
 
139
140
    def test_parse_revision_metadata_specialchar(self):
143
144
 
144
145
    def test_parse_revision_metadata_invalid_name(self):
145
146
        rev = Revision('someid')
146
 
        self.assertRaises(InvalidPropertyValue, 
 
147
        self.assertRaises(InvalidPropertyValue,
147
148
                lambda: parse_revision_metadata("bla: b", rev))
148
149
 
149
150
    def test_parse_revid_property(self):
153
154
        self.assertEquals((42, "bloe bla"), parse_revid_property("42 bloe bla"))
154
155
 
155
156
    def test_parse_revid_property_invalid(self):
156
 
        self.assertRaises(InvalidPropertyValue, 
 
157
        self.assertRaises(InvalidPropertyValue,
157
158
                lambda: parse_revid_property("blabla"))
158
159
 
159
160
    def test_parse_revid_property_empty_revid(self):
160
 
        self.assertRaises(InvalidPropertyValue, 
 
161
        self.assertRaises(InvalidPropertyValue,
161
162
                lambda: parse_revid_property("2 "))
162
163
 
163
164
    def test_parse_revid_property_newline(self):
164
 
        self.assertRaises(InvalidPropertyValue, 
 
165
        self.assertRaises(InvalidPropertyValue,
165
166
                lambda: parse_revid_property("foo\nbar"))
166
167
 
167
168
 
199
200
class ParseRevisionIdTests(TestCase):
200
201
 
201
202
    def test_v4(self):
202
 
        self.assertEqual((("uuid", "trunk", 1), BzrSvnMappingv4()), 
 
203
        self.assertEqual((("uuid", "trunk", 1), BzrSvnMappingv4()),
203
204
                mapping_registry.parse_revision_id("svn-v4:uuid:trunk:1"))
204
205
 
205
206
    def test_v3(self):
206
 
        self.assertEqual((("uuid", "trunk", 1), BzrSvnMappingv3(TrunkBranchingScheme())), 
 
207
        self.assertEqual((("uuid", "trunk", 1), BzrSvnMappingv3(TrunkBranchingScheme())),
207
208
                mapping_registry.parse_revision_id("svn-v3-trunk0:uuid:trunk:1"))
208
209
 
209
210
    def test_v3_undefined(self):
210
 
        self.assertEqual((("uuid", "trunk", 1), BzrSvnMappingv3(TrunkBranchingScheme())), 
 
211
        self.assertEqual((("uuid", "trunk", 1), BzrSvnMappingv3(TrunkBranchingScheme())),
211
212
                mapping_registry.parse_revision_id("svn-v3-undefined:uuid:trunk:1"))
212
213
 
213
214
    def test_v2(self):
214
 
        self.assertEqual((("uuid", "trunk", 1), BzrSvnMappingv2(TrunkLayout())), 
 
215
        self.assertEqual((("uuid", "trunk", 1), BzrSvnMappingv2(TrunkLayout())),
215
216
                         mapping_registry.parse_revision_id("svn-v2:1@uuid-trunk"))
216
217
 
217
218
    def test_v1(self):
218
 
        self.assertEqual((("uuid", "trunk", 1), BzrSvnMappingv1(TrunkLayout())), 
 
219
        self.assertEqual((("uuid", "trunk", 1), BzrSvnMappingv1(TrunkLayout())),
219
220
                         mapping_registry.parse_revision_id("svn-v1:1@uuid-trunk"))
220
221
 
221
222
    def test_except(self):
222
 
        self.assertRaises(KeyError, 
 
223
        self.assertRaises(KeyError,
223
224
                         mapping_registry.parse_revision_id, "svn-v0:1@uuid-trunk")
224
225
 
225
226
    def test_except_nonsvn(self):
226
 
        self.assertRaises(InvalidRevisionId, 
 
227
        self.assertRaises(InvalidRevisionId,
227
228
                         mapping_registry.parse_revision_id, "blah")
228
229
 
229
230
 
230
231
class EscapeTest(TestCase):
231
 
    def test_escape_svn_path_none(self):      
 
232
 
 
233
    def test_escape_svn_path_none(self):
232
234
        self.assertEqual("", escape_svn_path(""))
233
235
 
234
236
    def test_escape_svn_path_simple(self):
268
270
        self.assertEquals(2, estimate_bzr_ancestors({"bzr:revision-id:v42": "bla\nblie\n"}))
269
271
 
270
272
    def test_multiple(self):
271
 
        self.assertEquals(2, estimate_bzr_ancestors({"bzr:revision-id:v42": "bla\n", 
 
273
        self.assertEquals(2, estimate_bzr_ancestors({"bzr:revision-id:v42": "bla\n",
272
274
            "bzr:revision-id:v50": "blie\nblie\n"}))
273
275
 
274
276
 
291
293
 
292
294
 
293
295
class RoundTripAncestorRevids(TestCase):
294
 
    
 
296
 
295
297
    def test_none(self):
296
298
        self.assertEquals([], list(get_roundtrip_ancestor_revids({})))
297
299
 
298
300
    def test_simple(self):
299
 
        self.assertEquals([("arevid", 42, "v42-scheme")], 
 
301
        self.assertEquals([("arevid", 42, "v42-scheme")],
300
302
                list(get_roundtrip_ancestor_revids({mapping.SVN_PROP_BZR_REVISION_ID+"v42-scheme": "42 arevid\n"})))
301
303
 
302
304
    def test_multiple(self):
303
 
        self.assertEquals(set([("arevid", 42, "v42-scheme"), ("brevid", 50, "v90-ll")]), 
 
305
        self.assertEquals(set([("arevid", 42, "v42-scheme"), ("brevid", 50, "v90-ll")]),
304
306
                set(get_roundtrip_ancestor_revids({
305
307
                    mapping.SVN_PROP_BZR_REVISION_ID+"v42-scheme": "42 arevid\n",
306
308
                    mapping.SVN_PROP_BZR_REVISION_ID+"v90-ll": "50 brevid\n",
312
314
 
313
315
    def test_import_revision_svnprops(self):
314
316
        rev = Revision(None)
315
 
        mapping.parse_svn_revprops({"svn:log": "A log msg",
316
 
                                      "svn:author": "Somebody",
317
 
                                      "svn:date": "2008-11-03T09:33:00.716938Z"},  rev)
 
317
        revprops = {"svn:log": "A log msg", "svn:author": "Somebody",
 
318
                "svn:date": "2008-11-03T09:33:00.716938Z"}
 
319
        mapping.parse_svn_revprops(revprops,  rev)
318
320
        self.assertEquals("Somebody", rev.committer)
319
321
        self.assertEquals("A log msg", rev.message)
320
322
        self.assertEquals({}, rev.properties)
321
 
        self.assertEquals(1225701180.716938, rev.timestamp)
322
323
        self.assertEquals(0.0, rev.timezone)
 
324
        self.assertEquals(1225704780.716938, rev.timestamp,
 
325
                "parsing %s" % revprops["svn:date"])
323
326