/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
0.358.2 by Jelmer Vernooij
Refresh copyright headers, add my email.
1
# Copyright (C) 2010-2018 Jelmer Vernooij <jelmer@jelmer.uk>
0.252.1 by Jelmer Vernooij
Support storing revision id data.
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
0.358.1 by Jelmer Vernooij
Fix FSF address.
16
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
0.252.1 by Jelmer Vernooij
Support storing revision id data.
17
18
19
"""Tests for roundtripping text parsing."""
20
0.358.3 by Jelmer Vernooij
Enable absolute import.
21
from __future__ import absolute_import
0.252.1 by Jelmer Vernooij
Support storing revision id data.
22
6986.2.1 by Jelmer Vernooij
Move breezy.plugins.git to breezy.git.
23
from ...tests import TestCase
0.252.1 by Jelmer Vernooij
Support storing revision id data.
24
0.200.1642 by Jelmer Vernooij
Use relative imports in tests.
25
from ..roundtrip import (
0.200.1324 by Jelmer Vernooij
More work on roundtripping support.
26
    CommitSupplement,
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,
31
    )
0.252.1 by Jelmer Vernooij
Support storing revision id data.
32
33
34
class RoundtripTests(TestCase):
35
36
    def test_revid(self):
6964.2.1 by Jelmer Vernooij
Initial work to support brz-git on python3.
37
        md = parse_roundtripping_metadata(b"revision-id: foo\n")
6964.2.3 by Jelmer Vernooij
Review comments.
38
        self.assertEqual(b"foo", md.revision_id)
0.252.1 by Jelmer Vernooij
Support storing revision id data.
39
0.252.9 by Jelmer Vernooij
add extra tests.
40
    def test_parent_ids(self):
6964.2.1 by Jelmer Vernooij
Initial work to support brz-git on python3.
41
        md = parse_roundtripping_metadata(b"parent-ids: foo bar\n")
6964.2.3 by Jelmer Vernooij
Review comments.
42
        self.assertEqual((b"foo", b"bar"), md.explicit_parent_ids)
0.252.10 by Jelmer Vernooij
Support roundtripping custom revision properties.
43
44
    def test_properties(self):
6964.2.1 by Jelmer Vernooij
Initial work to support brz-git on python3.
45
        md = parse_roundtripping_metadata(b"property-foop: blar\n")
6964.2.3 by Jelmer Vernooij
Review comments.
46
        self.assertEqual({b"foop": b"blar"}, md.properties)
0.252.9 by Jelmer Vernooij
add extra tests.
47
0.252.2 by Jelmer Vernooij
Add functions for adding metadata to revision messages.
48
49
class FormatTests(TestCase):
50
0.252.9 by Jelmer Vernooij
add extra tests.
51
    def test_revid(self):
0.200.1324 by Jelmer Vernooij
More work on roundtripping support.
52
        metadata = CommitSupplement()
6964.2.1 by Jelmer Vernooij
Initial work to support brz-git on python3.
53
        metadata.revision_id = b"bla"
6964.2.3 by Jelmer Vernooij
Review comments.
54
        self.assertEqual(b"revision-id: bla\n",
7143.15.2 by Jelmer Vernooij
Run autopep8.
55
                         generate_roundtripping_metadata(metadata, "utf-8"))
0.252.2 by Jelmer Vernooij
Add functions for adding metadata to revision messages.
56
0.252.9 by Jelmer Vernooij
add extra tests.
57
    def test_parent_ids(self):
0.200.1324 by Jelmer Vernooij
More work on roundtripping support.
58
        metadata = CommitSupplement()
6964.2.1 by Jelmer Vernooij
Initial work to support brz-git on python3.
59
        metadata.explicit_parent_ids = (b"foo", b"bar")
6964.2.3 by Jelmer Vernooij
Review comments.
60
        self.assertEqual(b"parent-ids: foo bar\n",
7143.15.2 by Jelmer Vernooij
Run autopep8.
61
                         generate_roundtripping_metadata(metadata, "utf-8"))
0.252.9 by Jelmer Vernooij
add extra tests.
62
0.252.10 by Jelmer Vernooij
Support roundtripping custom revision properties.
63
    def test_properties(self):
0.200.1324 by Jelmer Vernooij
More work on roundtripping support.
64
        metadata = CommitSupplement()
6964.2.1 by Jelmer Vernooij
Initial work to support brz-git on python3.
65
        metadata.properties = {b"foo": b"bar"}
6964.2.3 by Jelmer Vernooij
Review comments.
66
        self.assertEqual(b"property-foo: bar\n",
7143.15.2 by Jelmer Vernooij
Run autopep8.
67
                         generate_roundtripping_metadata(metadata, "utf-8"))
0.252.10 by Jelmer Vernooij
Support roundtripping custom revision properties.
68
0.200.1019 by Jelmer Vernooij
Handle empty metadata.
69
    def test_empty(self):
0.200.1324 by Jelmer Vernooij
More work on roundtripping support.
70
        metadata = CommitSupplement()
6964.2.3 by Jelmer Vernooij
Review comments.
71
        self.assertEqual(b"",
7143.15.2 by Jelmer Vernooij
Run autopep8.
72
                         generate_roundtripping_metadata(metadata, "utf-8"))
0.200.1019 by Jelmer Vernooij
Handle empty metadata.
73
0.252.2 by Jelmer Vernooij
Add functions for adding metadata to revision messages.
74
75
class ExtractMetadataTests(TestCase):
76
77
    def test_roundtrip(self):
6964.2.1 by Jelmer Vernooij
Initial work to support brz-git on python3.
78
        (msg, metadata) = extract_bzr_metadata(b"""Foo
0.252.2 by Jelmer Vernooij
Add functions for adding metadata to revision messages.
79
--BZR--
80
revision-id: foo
81
""")
6964.2.3 by Jelmer Vernooij
Review comments.
82
        self.assertEqual(b"Foo", msg)
83
        self.assertEqual(b"foo", metadata.revision_id)
0.252.2 by Jelmer Vernooij
Add functions for adding metadata to revision messages.
84
85
86
class GenerateMetadataTests(TestCase):
87
88
    def test_roundtrip(self):
0.200.1324 by Jelmer Vernooij
More work on roundtripping support.
89
        metadata = CommitSupplement()
6964.2.1 by Jelmer Vernooij
Initial work to support brz-git on python3.
90
        metadata.revision_id = b"myrevid"
91
        msg = inject_bzr_metadata(b"Foo", metadata, "utf-8")
6964.2.3 by Jelmer Vernooij
Review comments.
92
        self.assertEqual(b"""Foo
0.252.2 by Jelmer Vernooij
Add functions for adding metadata to revision messages.
93
--BZR--
94
revision-id: myrevid
95
""", msg)
0.252.22 by Jelmer Vernooij
Fix file id map (de)serialization.
96
0.200.1019 by Jelmer Vernooij
Handle empty metadata.
97
    def test_no_metadata(self):
0.200.1324 by Jelmer Vernooij
More work on roundtripping support.
98
        metadata = CommitSupplement()
6964.2.1 by Jelmer Vernooij
Initial work to support brz-git on python3.
99
        msg = inject_bzr_metadata(b"Foo", metadata, "utf-8")
6964.2.3 by Jelmer Vernooij
Review comments.
100
        self.assertEqual(b"Foo", msg)