/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to breezy/tests/test_treebuilder.py

  • Committer: Martin
  • Date: 2018-08-21 00:53:34 UTC
  • mto: This revision was merged to the branch mainline in revision 7074.
  • Revision ID: gzlist@googlemail.com-20180821005334-e1ogxakojyybpwib
Fix recursion check in C bencode implementation

Hard to get Cython to do the right thing but by inverting the
return code can use the standard except handling.

Avoid going through a Python call when encoding, which requires
the encode recursion check to work too.

Adjust tests to use a smaller limit to be more managable.

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
 
18
18
"""Tests for the TreeBuilder helper class."""
19
19
 
20
 
from bzrlib import errors, tests
21
 
from bzrlib.memorytree import MemoryTree
22
 
from bzrlib.tests import TestCaseWithTransport
23
 
from bzrlib.treebuilder import TreeBuilder
 
20
from breezy import errors, tests
 
21
from breezy.memorytree import MemoryTree
 
22
from breezy.tests import TestCaseWithTransport
 
23
from breezy.treebuilder import (
 
24
    AlreadyBuilding,
 
25
    NotBuilding,
 
26
    TreeBuilder,
 
27
    )
24
28
 
25
29
 
26
30
class FakeTree(object):
63
67
        builder = TreeBuilder()
64
68
        tree = FakeTree()
65
69
        builder.start_tree(tree)
66
 
        self.assertRaises(errors.AlreadyBuilding, builder.start_tree, tree)
 
70
        self.assertRaises(AlreadyBuilding, builder.start_tree, tree)
67
71
 
68
72
    def test_finish_tree_not_started_errors(self):
69
73
        builder = TreeBuilder()
70
 
        self.assertRaises(errors.NotBuilding, builder.finish_tree)
 
74
        self.assertRaises(NotBuilding, builder.finish_tree)
71
75
 
72
76
    def test_finish_tree_unlocks(self):
73
77
        builder = TreeBuilder()
78
82
 
79
83
    def test_build_tree_not_started_errors(self):
80
84
        builder = TreeBuilder()
81
 
        self.assertRaises(errors.NotBuilding, builder.build, "foo")
 
85
        self.assertRaises(NotBuilding, builder.build, "foo")
82
86
 
83
87
    def test_build_tree(self):
84
88
        """Test building works using a MemoryTree."""
87
91
        builder = TreeBuilder()
88
92
        builder.start_tree(tree)
89
93
        builder.build(['foo', "bar/", "bar/file"])
90
 
        self.assertEqual('contents of foo\n',
91
 
            tree.get_file(tree.path2id('foo')).read())
92
 
        self.assertEqual('contents of bar/file\n',
93
 
            tree.get_file(tree.path2id('bar/file')).read())
 
94
        self.assertEqual(
 
95
            b'contents of foo\n',
 
96
            tree.get_file('foo').read())
 
97
        self.assertEqual(
 
98
            b'contents of bar/file\n',
 
99
            tree.get_file('bar/file').read())
94
100
        builder.finish_tree()
95
101