~ubuntu-branches/debian/sid/bzr-svn/sid

« back to all changes in this revision

Viewing changes to tests/test_config.py

  • Committer: Bazaar Package Importer
  • Author(s): Jelmer Vernooij
  • Date: 2009-03-10 14:38:42 UTC
  • mfrom: (1.2.1 upstream) (3.1.4 jaunty)
  • Revision ID: james.westby@ubuntu.com-20090310143842-ucp9fxog1yi3la8f
Tags: 0.5.3-1
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2007 Jelmer Vernooij <jelmer@samba.org>
 
1
# Copyright (C) 2007-2009 Jelmer Vernooij <jelmer@samba.org>
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
5
 
# the Free Software Foundation; either version 3 of the License, or
 
5
# the Free Software Foundation; either version 2 of the License, or
6
6
# (at your option) any later version.
7
7
 
8
8
# This program is distributed in the hope that it will be useful,
17
17
"""Config tests."""
18
18
 
19
19
from bzrlib.branch import Branch
20
 
from bzrlib.plugins.svn.config import SvnRepositoryConfig, BranchConfig
 
20
from bzrlib.repository import Repository
 
21
from bzrlib.workingtree import WorkingTree
 
22
from bzrlib.plugins.svn.config import (
 
23
    BranchConfig, 
 
24
    NoSubversionBuildPackageConfig, 
 
25
    PropertyConfig, 
 
26
    SvnRepositoryConfig, 
 
27
    SubversionBuildPackageConfig,
 
28
    )
21
29
from bzrlib.plugins.svn.mapping3.scheme import TrunkBranchingScheme
22
 
from bzrlib.plugins.svn.tests import TestCaseWithSubversionRepository
23
 
 
24
 
from bzrlib.tests import TestCaseInTempDir
25
 
 
26
 
class ReposConfigTests(TestCaseInTempDir):
27
 
    def test_create(self):
28
 
        SvnRepositoryConfig("blabla")
29
 
 
30
 
    def test_get_empty_locations(self):
31
 
        c = SvnRepositoryConfig("blabla6")
32
 
        self.assertEquals(set(), c.get_locations())
 
30
from bzrlib.plugins.svn.tests import SubversionTestCase
 
31
 
 
32
class ReposConfigTests(SubversionTestCase):
 
33
 
 
34
    def setUp(self):
 
35
        super(ReposConfigTests, self).setUp()
 
36
        self.repos_url = self.make_repository("d")
 
37
        self.repos = Repository.open(self.repos_url)
 
38
        self.config = self.repos.get_config()
 
39
 
 
40
    def test_get_default_locations(self):
 
41
        c = self.config
 
42
        self.assertEquals(set([self.repos.base.rstrip("/")]), c.get_locations())
33
43
 
34
44
    def test_get_location_one(self):
35
 
        c = SvnRepositoryConfig("blabla5")
 
45
        c = self.config
36
46
        c.add_location("foobar")
37
 
        self.assertEquals(set(["foobar"]), c.get_locations())
 
47
        self.assertEquals(set(["foobar", self.repos.base.rstrip("/")]), c.get_locations())
38
48
 
39
49
    def test_get_location_two(self):
40
 
        c = SvnRepositoryConfig("blabla4")
 
50
        c = self.config
41
51
        c.add_location("foobar")
42
52
        c.add_location("brainslug")
43
 
        self.assertEquals(set(["foobar", "brainslug"]), c.get_locations())
 
53
        self.assertEquals(set(["foobar", "brainslug", self.repos.base.rstrip("/")]), c.get_locations())
 
54
 
 
55
    def test_get_branches(self):
 
56
        c = self.config 
 
57
        c.set_user_option("branches", "bla;blie")
 
58
        self.assertEquals(["bla", "blie"], c.get_branches())
 
59
 
 
60
    def test_branches(self):
 
61
        c = self.config 
 
62
        c.set_branches(["bla", "blie"])
 
63
        self.assertEquals(["bla", "blie"], c.get_branches())
 
64
 
 
65
    def test_get_tags(self):
 
66
        c = self.config 
 
67
        c.set_user_option("tags", "bla;blie")
 
68
        self.assertEquals(["bla", "blie"], c.get_tags())
 
69
 
 
70
    def test_tags(self):
 
71
        c = self.config 
 
72
        c.set_tags(["bla", "blie"])
 
73
        self.assertEquals(["bla", "blie"], c.get_tags())
44
74
 
45
75
    def test_get_scheme_none(self):
46
 
        c = SvnRepositoryConfig("blabla3")
 
76
        c = self.config
47
77
        self.assertEquals(None, c.get_branching_scheme())
48
78
 
49
79
    def test_get_scheme_set(self):
50
 
        c = SvnRepositoryConfig("blabla2")
51
 
        c.set_branching_scheme(TrunkBranchingScheme())
 
80
        c = self.config
 
81
        c.set_branching_scheme(TrunkBranchingScheme(), None)
52
82
        self.assertEquals("trunk0", str(c.get_branching_scheme()))
53
83
 
54
84
    def test_get_scheme_mandatory_none(self):
55
 
        c = SvnRepositoryConfig("blabla3")
 
85
        c = self.config
56
86
        self.assertEquals(False, c.branching_scheme_is_mandatory())
57
87
 
58
88
    def test_get_scheme_mandatory_set(self):
59
 
        c = SvnRepositoryConfig("blabla3")
60
 
        c.set_branching_scheme(TrunkBranchingScheme(), mandatory=True)
 
89
        c = self.config
 
90
        c.set_branching_scheme(TrunkBranchingScheme(), None, mandatory=True)
61
91
        self.assertEquals(True, c.branching_scheme_is_mandatory())
62
 
        c.set_branching_scheme(TrunkBranchingScheme(), mandatory=False)
 
92
        c.set_branching_scheme(TrunkBranchingScheme(), None, mandatory=False)
63
93
        self.assertEquals(False, c.branching_scheme_is_mandatory())
64
94
 
65
 
    def test_override_revprops(self):
66
 
        c = SvnRepositoryConfig("blabla2")
67
 
        self.assertEquals(None, c.get_override_svn_revprops())
68
 
        c.set_user_option("override-svn-revprops", "True")
69
 
        self.assertEquals(["svn:date", "svn:author"], c.get_override_svn_revprops())
70
 
        c.set_user_option("override-svn-revprops", "False")
71
 
        self.assertEquals([], c.get_override_svn_revprops())
72
 
        c.set_user_option("override-svn-revprops", ["svn:author", "svn:date"])
73
 
        self.assertEquals(["svn:author","svn:date"], c.get_override_svn_revprops())
74
 
        c.set_user_option("override-svn-revprops", ["svn:author"])
75
 
        self.assertEquals(["svn:author"], c.get_override_svn_revprops())
76
 
 
77
 
    def test_get_append_revisions_only(self):
78
 
        c = SvnRepositoryConfig("blabla2")
79
 
        self.assertEquals(None, c.get_append_revisions_only())
80
 
        c.set_user_option("append_revisions_only", "True")
81
 
        self.assertEquals(True, c.get_append_revisions_only())
82
 
        c.set_user_option("append_revisions_only", "False")
83
 
        self.assertEquals(False, c.get_append_revisions_only())
84
 
 
85
 
    def test_set_revprops(self):
86
 
        c = SvnRepositoryConfig("blabla2")
87
 
        self.assertEquals(None, c.get_set_revprops())
88
 
        c.set_user_option("set-revprops", "True")
89
 
        self.assertEquals(True, c.get_set_revprops())
90
 
        c.set_user_option("set-revprops", "False")
91
 
        self.assertEquals(False, c.get_set_revprops())
92
 
 
93
 
    def test_log_strip_trailing_newline(self):
94
 
        c = SvnRepositoryConfig("blabla3")
95
 
        self.assertEquals(False, c.get_log_strip_trailing_newline())
96
 
        c.set_user_option("log-strip-trailing-newline", "True")
97
 
        self.assertEquals(True, c.get_log_strip_trailing_newline())
98
 
        c.set_user_option("log-strip-trailing-newline", "False")
99
 
        self.assertEquals(False, c.get_log_strip_trailing_newline())
100
 
 
101
95
    def test_supports_change_revprop(self):
102
 
        c = SvnRepositoryConfig("blabla2")
 
96
        c = self.config
103
97
        self.assertEquals(None, c.get_supports_change_revprop())
104
98
        c.set_user_option("supports-change-revprop", "True")
105
99
        self.assertEquals(True, c.get_supports_change_revprop())
106
100
        c.set_user_option("supports-change-revprop", "False")
107
101
        self.assertEquals(False, c.get_supports_change_revprop())
108
102
 
109
 
 
110
 
class BranchConfigTests(TestCaseWithSubversionRepository):
 
103
    def test_default_mapping(self):
 
104
        c = self.config
 
105
        self.assertEquals(None, c.get_default_mapping())
 
106
        c.set_user_option("default-mapping", "v8")
 
107
        self.assertEquals("v8", c.get_default_mapping())
 
108
 
 
109
    def test_use_cache(self):
 
110
        c = self.config
 
111
        self.assertEquals(None, c.get_use_cache())
 
112
        c.set_user_option("use-cache", "True")
 
113
        self.assertEquals(set(["log", "revids", "fileids", "revinfo"]), c.get_use_cache())
 
114
        c.set_user_option("use-cache", ["log", "revids"])
 
115
        self.assertEquals(set(["log", "revids"]), c.get_use_cache())
 
116
        c.set_user_option("use-cache", "False")
 
117
        self.assertEquals(set([]), c.get_use_cache())
 
118
 
 
119
 
 
120
class BranchConfigTests(SubversionTestCase):
 
121
 
111
122
    def setUp(self):
112
123
        super(BranchConfigTests, self).setUp()
113
 
        self.repos_url = self.make_client("d", "dc")
114
 
        self.config = BranchConfig(Branch.open(self.repos_url))
 
124
        self.repos_url = self.make_repository("d")
 
125
        self.config = Branch.open(self.repos_url).get_config()
115
126
 
116
127
    def test_set_option(self):
117
128
        self.config.set_user_option("append_revisions_only", "True")
118
129
        self.assertEquals("True", self.config.get_user_option("append_revisions_only"))
119
130
 
120
 
 
 
131
    def test_log_strip_trailing_newline(self):
 
132
        self.assertEquals(False, self.config.get_log_strip_trailing_newline())
 
133
        self.config.set_user_option("log-strip-trailing-newline", "True")
 
134
        self.assertEquals(True, self.config.get_log_strip_trailing_newline())
 
135
        self.config.set_user_option("log-strip-trailing-newline", "False")
 
136
        self.assertEquals(False, self.config.get_log_strip_trailing_newline())
 
137
 
 
138
    def test_override_revprops(self):
 
139
        self.assertEquals(None, self.config.get_override_svn_revprops())
 
140
        self.config.set_user_option("override-svn-revprops", "True")
 
141
        self.assertEquals(["svn:date", "svn:author"], self.config.get_override_svn_revprops())
 
142
        self.config.set_user_option("override-svn-revprops", "False")
 
143
        self.assertEquals([], self.config.get_override_svn_revprops())
 
144
        self.config.set_user_option("override-svn-revprops", ["svn:author", "svn:date"])
 
145
        self.assertEquals(["svn:author", "svn:date"], self.config.get_override_svn_revprops())
 
146
        self.config.set_user_option("override-svn-revprops", ["svn:author"])
 
147
        self.assertEquals(["svn:author"], self.config.get_override_svn_revprops())
 
148
 
 
149
    def test_get_append_revisions_only(self):
 
150
        self.assertEquals(None, self.config.get_append_revisions_only())
 
151
        self.config.set_user_option("append_revisions_only", "True")
 
152
        self.assertEquals(True, self.config.get_append_revisions_only())
 
153
        self.config.set_user_option("append_revisions_only", "False")
 
154
        self.assertEquals(False, self.config.get_append_revisions_only())
 
155
 
 
156
 
 
157
class PropertyConfigTests(SubversionTestCase):
 
158
 
 
159
    def test_getitem(self):
 
160
        repos_url = self.make_repository("d")
 
161
 
 
162
        dc = self.get_commit_editor(repos_url)
 
163
        f = dc.add_file("foo")
 
164
        f.change_prop("bla", "bar")
 
165
        f.modify()
 
166
        dc.close()
 
167
 
 
168
        repos = Repository.open(repos_url)
 
169
 
 
170
        cfg = PropertyConfig(repos.revision_tree(repos.generate_revision_id(1, "", repos.get_mapping())), "foo")
 
171
 
 
172
        self.assertEquals("bar", cfg["bla"])
 
173
 
 
174
 
 
175
class SvnBpConfigTests(SubversionTestCase):
 
176
 
 
177
    def test_no_debian_dir(self):
 
178
        repos_url = self.make_repository("d")
 
179
        self.assertRaises(NoSubversionBuildPackageConfig, 
 
180
                SubversionBuildPackageConfig, Branch.open(repos_url).basis_tree())
 
181
 
 
182
    def test_mergeWithUpstream(self):
 
183
        repos_url = self.make_repository("d")
 
184
        
 
185
        dc = self.get_commit_editor(repos_url)
 
186
        f = dc.add_dir("debian")
 
187
        f.change_prop("mergeWithUpstream", "1")
 
188
        dc.close()
 
189
 
 
190
        cfg = SubversionBuildPackageConfig(Branch.open(repos_url).basis_tree())
 
191
 
 
192
        self.assertEquals(True, cfg.get_merge_with_upstream())
 
193
 
 
194
    def test_get_property_val(self):
 
195
        repos_url = self.make_repository("d")
 
196
        
 
197
        dc = self.get_commit_editor(repos_url)
 
198
        f = dc.add_dir("debian")
 
199
        f.change_prop("svn-bp:origDir", "myorigdir")
 
200
        dc.close()
 
201
 
 
202
        cfg = SubversionBuildPackageConfig(Branch.open(repos_url).basis_tree())
 
203
 
 
204
        self.assertEquals("myorigdir", cfg.get("origDir"))
 
205
 
 
206
    def test_get_intree_val(self):
 
207
        repos_url = self.make_repository("d")
 
208
        
 
209
        dc = self.get_commit_editor(repos_url)
 
210
        d = dc.add_dir("debian")
 
211
        f = d.add_file("debian/svn-layout")
 
212
        f.modify("origDir = aorigdir\n")
 
213
        dc.close()
 
214
 
 
215
        cfg = SubversionBuildPackageConfig(Branch.open(repos_url).basis_tree())
 
216
 
 
217
        self.assertEquals("aorigdir", cfg.get("origDir"))
 
218
 
 
219
    def test_get_controldir_val(self):
 
220
        repos_url = self.make_client("d", "dc")
 
221
 
 
222
        f = open('dc/.svn/svn-layout', 'w')
 
223
        f.write("buildArea = build-gebied\n")
 
224
        f.close()
 
225
        
 
226
        cfg = SubversionBuildPackageConfig(WorkingTree.open("dc"))
 
227
 
 
228
        self.assertEquals("build-gebied", cfg.get("buildArea"))