/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
0.252.1 by Jelmer Vernooij
Support storing revision id data.
1
# Copyright (C) 2010 Jelmer Vernooij <jelmer@samba.org>
2
# -*- encoding: utf-8 -*-
3
#
4
# This program is free software; you can redistribute it and/or modify
5
# it under the terms of the GNU General Public License as published by
6
# the Free Software Foundation; either version 2 of the License, or
7
# (at your option) any later version.
8
#
9
# This program is distributed in the hope that it will be useful,
10
# but WITHOUT ANY WARRANTY; without even the implied warranty of
11
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
# GNU General Public License for more details.
13
#
14
# You should have received a copy of the GNU General Public License
15
# along with this program; if not, write to the Free Software
16
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17
18
19
"""Tests for roundtripping text parsing."""
20
21
22
from bzrlib.tests import TestCase
23
0.252.2 by Jelmer Vernooij
Add functions for adding metadata to revision messages.
24
from bzrlib.plugins.git.roundtrip import (
25
    BzrGitRevisionMetadata,
0.252.22 by Jelmer Vernooij
Fix file id map (de)serialization.
26
    deserialize_fileid_map,
0.252.2 by Jelmer Vernooij
Add functions for adding metadata to revision messages.
27
    extract_bzr_metadata,
28
    generate_roundtripping_metadata,
29
    inject_bzr_metadata,
30
    parse_roundtripping_metadata,
0.252.22 by Jelmer Vernooij
Fix file id map (de)serialization.
31
    serialize_fileid_map,
0.252.2 by Jelmer Vernooij
Add functions for adding metadata to revision messages.
32
    )
0.252.1 by Jelmer Vernooij
Support storing revision id data.
33
34
35
class RoundtripTests(TestCase):
36
37
    def test_revid(self):
38
        md = parse_roundtripping_metadata("revision-id: foo\n")
39
        self.assertEquals("foo", md.revision_id)
40
0.252.9 by Jelmer Vernooij
add extra tests.
41
    def test_parent_ids(self):
42
        md = parse_roundtripping_metadata("parent-ids: foo bar\n")
0.252.10 by Jelmer Vernooij
Support roundtripping custom revision properties.
43
        self.assertEquals(("foo", "bar"), md.explicit_parent_ids)
44
45
    def test_properties(self):
46
        md = parse_roundtripping_metadata("property-foop: blar\n")
47
        self.assertEquals({"foop": "blar"}, md.properties)
0.252.9 by Jelmer Vernooij
add extra tests.
48
0.252.2 by Jelmer Vernooij
Add functions for adding metadata to revision messages.
49
50
class FormatTests(TestCase):
51
0.252.9 by Jelmer Vernooij
add extra tests.
52
    def test_revid(self):
0.252.2 by Jelmer Vernooij
Add functions for adding metadata to revision messages.
53
        metadata = BzrGitRevisionMetadata()
54
        metadata.revision_id = "bla"
55
        self.assertEquals("revision-id: bla\n",
0.252.41 by Jelmer Vernooij
Fix Repository.all_revision_ids.
56
            generate_roundtripping_metadata(metadata, "utf-8"))
0.252.2 by Jelmer Vernooij
Add functions for adding metadata to revision messages.
57
0.252.9 by Jelmer Vernooij
add extra tests.
58
    def test_parent_ids(self):
59
        metadata = BzrGitRevisionMetadata()
60
        metadata.explicit_parent_ids = ("foo", "bar")
61
        self.assertEquals("parent-ids: foo bar\n",
0.252.41 by Jelmer Vernooij
Fix Repository.all_revision_ids.
62
            generate_roundtripping_metadata(metadata, "utf-8"))
0.252.9 by Jelmer Vernooij
add extra tests.
63
0.252.10 by Jelmer Vernooij
Support roundtripping custom revision properties.
64
    def test_properties(self):
65
        metadata = BzrGitRevisionMetadata()
66
        metadata.properties = {"foo": "bar"}
67
        self.assertEquals("property-foo: bar\n",
0.252.41 by Jelmer Vernooij
Fix Repository.all_revision_ids.
68
            generate_roundtripping_metadata(metadata, "utf-8"))
0.252.10 by Jelmer Vernooij
Support roundtripping custom revision properties.
69
0.252.2 by Jelmer Vernooij
Add functions for adding metadata to revision messages.
70
71
class ExtractMetadataTests(TestCase):
72
73
    def test_roundtrip(self):
74
        (msg, metadata) = extract_bzr_metadata("""Foo
75
--BZR--
76
revision-id: foo
77
""")
78
        self.assertEquals("Foo", msg)
79
        self.assertEquals("foo", metadata.revision_id)
80
81
82
class GenerateMetadataTests(TestCase):
83
84
    def test_roundtrip(self):
85
        metadata = BzrGitRevisionMetadata()
86
        metadata.revision_id = "myrevid"
0.252.41 by Jelmer Vernooij
Fix Repository.all_revision_ids.
87
        msg = inject_bzr_metadata("Foo", metadata, "utf-8")
0.252.2 by Jelmer Vernooij
Add functions for adding metadata to revision messages.
88
        self.assertEquals("""Foo
89
--BZR--
90
revision-id: myrevid
91
""", msg)
0.252.22 by Jelmer Vernooij
Fix file id map (de)serialization.
92
93
94
class FileIdRoundTripTests(TestCase):
95
96
    def test_deserialize(self):
97
        self.assertEquals({"bar/bla": "fid"},
98
            deserialize_fileid_map("bar/bla\0fid\n"))
99
100
    def test_serialize(self):
0.252.23 by Jelmer Vernooij
More work on roundtripping support.
101
        self.assertEquals(["bar/bla\0fid\n"],
0.252.22 by Jelmer Vernooij
Fix file id map (de)serialization.
102
            serialize_fileid_map({"bar/bla": "fid"}))
103