/b-gtk/fix-viz

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/b-gtk/fix-viz

« back to all changes in this revision

Viewing changes to tests/test_diff.py

  • Committer: Vincent Ladeuil
  • Date: 2008-05-05 18:16:46 UTC
  • mto: (487.1.1 gtk)
  • mto: This revision was merged to the branch mainline in revision 490.
  • Revision ID: v.ladeuil+lp@free.fr-20080505181646-n95l8ltw2u6jtr26
Fix bug #187283 fix replacing _() by _i18n().

* genpot.sh 
Remove duplication. Add the ability to specify the genrated pot
file on command-line for debugging purposes.

* po/olive-gtk.pot:
Regenerated.

* __init__.py, branch.py, branchview/treeview.py, checkout.py,
commit.py, conflicts.py, diff.py, errors.py, initialize.py,
merge.py, nautilus-bzr.py, olive/__init__.py, olive/add.py,
olive/bookmark.py, olive/guifiles.py, olive/info.py,
olive/menu.py, olive/mkdir.py, olive/move.py, olive/remove.py,
olive/rename.py, push.py, revbrowser.py, status.py, tags.py:
Replace all calls to _() by calls to _i18n(), the latter being
defined in __init__.py and imported in the other modules from
there. This fix the problem encountered countless times when
running bzr selftest and getting silly error messages about
boolean not being callables.

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
from cStringIO import StringIO
19
19
import os
20
20
 
21
 
from bzrlib import (
22
 
    conflicts,
23
 
    errors,
24
 
    tests,
25
 
    )
26
 
from bzrlib.merge_directive import MergeDirective2
27
 
 
28
 
from bzrlib.plugins.gtk.diff import (
29
 
    DiffController,
30
 
    DiffView,
31
 
    iter_changes_to_status,
32
 
    MergeDirectiveController,
33
 
    )
34
 
eg_diff = """\
35
 
=== modified file 'tests/test_diff.py'
36
 
--- tests/test_diff.py  2008-03-11 13:18:28 +0000
37
 
+++ tests/test_diff.py  2008-05-08 22:44:02 +0000
38
 
@@ -20,7 +20,11 @@
39
 
 
40
 
 from bzrlib import tests
41
 
 
42
 
-from bzrlib.plugins.gtk.diff import DiffView, iter_changes_to_status
43
 
+from bzrlib.plugins.gtk.diff import (
44
 
+    DiffController,
45
 
+    DiffView,
46
 
+    iter_changes_to_status,
47
 
+    )
48
 
 
49
 
 
50
 
 class TestDiffViewSimple(tests.TestCase):
51
 
"""
 
21
from bzrlib import tests
 
22
 
 
23
from bzrlib.plugins.gtk.diff import DiffView, iter_changes_to_status
 
24
 
52
25
 
53
26
class TestDiffViewSimple(tests.TestCase):
54
27
 
73
46
class TestDiffView(tests.TestCaseWithTransport):
74
47
 
75
48
    def test_unicode(self):
76
 
        self.requireFeature(tests.UnicodeFilenameFeature)
 
49
        from bzrlib.tests.test_diff import UnicodeFilename
 
50
        self.requireFeature(UnicodeFilename)
77
51
 
78
52
        tree = self.make_branch_and_tree('tree')
79
53
        self.build_tree([u'tree/\u03a9'])
95
69
            )
96
70
 
97
71
 
98
 
class MockDiffWidget(object):
99
 
 
100
 
    def set_diff_text_sections(self, sections):
101
 
        self.sections = list(sections)
102
 
 
103
 
 
104
 
class MockWindow(object):
105
 
    def __init__(self):
106
 
        self.diff = MockDiffWidget()
107
 
        self.merge_successful = False
108
 
 
109
 
    def set_title(self, title):
110
 
        self.title = title
111
 
 
112
 
    def _get_save_path(self, basename):
113
 
        return 'save-path'
114
 
 
115
 
    def _get_merge_target(self):
116
 
        return 'this'
117
 
 
118
 
    def destroy(self):
119
 
        pass
120
 
 
121
 
    def _merge_successful(self):
122
 
        self.merge_successful = True
123
 
 
124
 
    def _conflicts(self):
125
 
        self.conflicts = True
126
 
 
127
 
    def _handle_error(self, e):
128
 
        self.handled_error = e
129
 
 
130
 
 
131
 
class TestDiffController(tests.TestCaseWithTransport):
132
 
 
133
 
    def get_controller(self):
134
 
        window = MockWindow()
135
 
        return DiffController('load-path', eg_diff.splitlines(True), window)
136
 
 
137
 
    def test_get_diff_sections(self):
138
 
        controller = self.get_controller()
139
 
        controller = DiffController('.', eg_diff.splitlines(True),
140
 
                                    controller.window)
141
 
        sections = list(controller.get_diff_sections())
142
 
        self.assertEqual('Complete Diff', sections[0][0])
143
 
        self.assertIs(None, sections[0][1])
144
 
        self.assertEqual(eg_diff, sections[0][2])
145
 
 
146
 
        self.assertEqual('tests/test_diff.py', sections[1][0])
147
 
        self.assertEqual('tests/test_diff.py', sections[1][1])
148
 
        self.assertEqual(''.join(eg_diff.splitlines(True)[1:]),
149
 
                         sections[1][2])
150
 
 
151
 
    def test_initialize_window(self):
152
 
        controller = self.get_controller()
153
 
        controller.initialize_window(controller.window)
154
 
        self.assertEqual(2, len(controller.window.diff.sections))
155
 
        self.assertEqual('load-path - diff', controller.window.title)
156
 
 
157
 
    def test_perform_save(self):
158
 
        self.build_tree_contents([('load-path', 'foo')])
159
 
        controller = self.get_controller()
160
 
        controller.perform_save(None)
161
 
        self.assertFileEqual('foo', 'save-path')
162
 
 
163
 
 
164
 
class TestMergeDirectiveController(tests.TestCaseWithTransport):
165
 
 
166
 
    def make_this_other_directive(self):
167
 
        this = self.make_branch_and_tree('this')
168
 
        this.commit('first commit')
169
 
        other = this.bzrdir.sprout('other').open_workingtree()
170
 
        self.build_tree_contents([('other/foo', 'bar')])
171
 
        other.add('foo')
172
 
        other.commit('second commit')
173
 
        other.lock_write()
174
 
        try:
175
 
            directive = MergeDirective2.from_objects(other.branch.repository,
176
 
                                                     other.last_revision(), 0,
177
 
                                                     0, 'this')
178
 
        finally:
179
 
            other.unlock()
180
 
        return this, other, directive
181
 
 
182
 
    def make_merged_window(self, directive):
183
 
        window = MockWindow()
184
 
        controller = MergeDirectiveController('directive', directive, window)
185
 
        controller.perform_merge(window)
186
 
        return window
187
 
 
188
 
    def test_perform_merge_success(self):
189
 
        this, other, directive = self.make_this_other_directive()
190
 
        window = self.make_merged_window(directive)
191
 
        self.assertTrue(window.merge_successful)
192
 
        self.assertEqual(other.last_revision(), this.get_parent_ids()[1])
193
 
        self.assertFileEqual('bar', 'this/foo')
194
 
 
195
 
    def test_perform_merge_conflicts(self):
196
 
        this, other, directive = self.make_this_other_directive()
197
 
        self.build_tree_contents([('this/foo', 'bar')])
198
 
        this.add('foo')
199
 
        this.commit('message')
200
 
        window = self.make_merged_window(directive)
201
 
        self.assertFalse(window.merge_successful)
202
 
        self.assertTrue(window.conflicts)
203
 
        self.assertEqual(other.last_revision(), this.get_parent_ids()[1])
204
 
        self.assertFileEqual('bar', 'this/foo')
205
 
 
206
 
    def test_perform_merge_uncommitted_changes(self):
207
 
        this, other, directive = self.make_this_other_directive()
208
 
        self.build_tree_contents([('this/foo', 'bar')])
209
 
        this.add('foo')
210
 
        window = self.make_merged_window(directive)
211
 
        self.assertIsInstance(window.handled_error, errors.UncommittedChanges)
212
 
 
213
 
 
214
72
class Test_IterChangesToStatus(tests.TestCaseWithTransport):
215
73
 
216
74
    def assertStatusEqual(self, expected, tree):
307
165
            [('a-id', 'a', 'removed', 'a'),
308
166
             ('b-id', 'b', 'removed', 'b/'),
309
167
            ], tree)
310
 
 
311
 
    def test_status_missing_file(self):
312
 
        this = self.make_branch_and_tree('this')
313
 
        self.build_tree(['this/foo'])
314
 
        this.add(['foo'], ['foo-id'])
315
 
        this.commit('add')
316
 
 
317
 
        other = this.bzrdir.sprout('other').open_workingtree()
318
 
 
319
 
        os.remove('this/foo')
320
 
        this.remove('foo', force=True)
321
 
        this.commit('remove')
322
 
 
323
 
        f = open('other/foo', 'wt')
324
 
        try:
325
 
            f.write('Modified\n')
326
 
        finally:
327
 
            f.close()
328
 
        other.commit('modified')
329
 
 
330
 
        this.merge_from_branch(other.branch)
331
 
        conflicts.resolve(this)
332
 
 
333
 
        self.assertStatusEqual(
334
 
            [('foo-id', 'foo.OTHER', 'missing', 'foo.OTHER'),],
335
 
            this)
336
 
 
337
 
    def test_status_missing_directory(self):
338
 
        this = self.make_branch_and_tree('this')
339
 
        self.build_tree(['this/foo/', 'this/foo/bar'])
340
 
        this.add(['foo', 'foo/bar'], ['foo-id', 'bar-id'])
341
 
        this.commit('add')
342
 
 
343
 
        other = this.bzrdir.sprout('other').open_workingtree()
344
 
 
345
 
        os.remove('this/foo/bar')
346
 
        os.rmdir('this/foo')
347
 
        this.remove('foo', force=True)
348
 
        this.commit('remove')
349
 
 
350
 
        f = open('other/foo/bar', 'wt')
351
 
        try:
352
 
            f.write('Modified\n')
353
 
        finally:
354
 
            f.close()
355
 
        other.commit('modified')
356
 
 
357
 
        this.merge_from_branch(other.branch)
358
 
        conflicts.resolve(this)
359
 
 
360
 
        self.assertStatusEqual(
361
 
            [('foo-id', u'foo', 'added', u'foo/'),
362
 
             ('bar-id', u'foo/bar.OTHER', 'missing', u'foo/bar.OTHER'),],
363
 
            this)