/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 bzrlib/weavefile.py

  • Committer: v.ladeuil+lp at free
  • Date: 2006-10-12 14:29:32 UTC
  • mto: (2145.1.1 keepalive)
  • mto: This revision was merged to the branch mainline in revision 2146.
  • Revision ID: v.ladeuil+lp@free.fr-20061012142932-7221fe16d2b48fa3
Shuffle http related test code. Hopefully it ends up at the right place :)

* bzrlib/tests/HttpServer.py: 
New file. bzrlib.tests.ChrootedTestCase use HttpServer. So the
class can't be defined in bzrlib.tests.HTTPUtils because it
creates a circular dependency (bzrlib.tests.HTTPUtils needs to
import bzrlib.tests).

* bzrlib/transport/http/_urllib.py: 
Transfer test server definition to bzrlib.tests.HttpServer. Clean
up imports.

* bzrlib/transport/http/_pycurl.py: 
Transfer test server definition to bzrlib.tests.HttpServer. Clean
up imports.

* bzrlib/transport/http/__init__.py: 
Transfer all test related code to either bzrlib.tests.HttpServer
and bzrlib.tests.HTTPUtils.
Fix all use of TransportNotPossible and InvalidURL by prefixing it
by 'errors.' (this seems to be the preferred way in the rest of
bzr).
Get rid of unused imports.

* bzrlib/tests/test_transport.py:
(ReadonlyDecoratorTransportTest.test_local_parameters,
FakeNFSDecoratorTests.test_http_parameters): Use HttpServer from
bzrlib.tests.HttpServer instead of bzrlib.transport.http.

* bzrlib/tests/test_sftp_transport.py:
(set_test_transport_to_sftp): Use HttpServer from
bzrlib.tests.HttpServer instead of bzrlib.transport.http.

* bzrlib/tests/test_selftest.py:
(TestTestCaseWithTransport.test_get_readonly_url_http): Use
HttpServer from bzrlib.tests.HttpServer instead of
bzrlib.transport.http.

* bzrlib/tests/test_repository.py: 
Does *not* use HttpServer.

* bzrlib/tests/test_http.py: 
Build on top of bzrlib.tests.HttpServer and bzrlib.tests.HTTPUtils
instead of bzrlib.transport.http.

* bzrlib/tests/test_bzrdir.py:
(ChrootedTests.setUp): Use HttpServer from bzrlib.tests.HttpServer
instead of bzrlib.transport.http.

* bzrlib/tests/branch_implementations/test_http.py:
(HTTPBranchTests.setUp): Use HttpServer from bzrlib.tests.HttpServer
instead of bzrlib.transport.http.

* bzrlib/tests/branch_implementations/test_branch.py:
(ChrootedTests.setUp): Use HttpServer from bzrlib.tests.HttpServer
instead of bzrlib.transport.http.

* bzrlib/tests/__init__.py:
(ChrootedTestCase.setUp): Use HttpServer from
bzrlib.tests.HttpServer instead of bzrlib.transport.http.

Show diffs side-by-side

added added

removed removed

Lines of Context:
12
12
#
13
13
# You should have received a copy of the GNU General Public License
14
14
# along with this program; if not, write to the Free Software
15
 
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
16
#
17
17
# Author: Martin Pool <mbp@canonical.com>
18
18
 
53
53
 
54
54
def write_weave_v5(weave, f):
55
55
    """Write weave to file f."""
56
 
    f.write(FORMAT_1)
 
56
    print >>f, FORMAT_1,
57
57
 
58
58
    for version, included in enumerate(weave._parents):
59
59
        if included:
60
60
            # mininc = weave.minimal_parents(version)
61
61
            mininc = included
62
 
            f.write('i ')
63
 
            f.write(' '.join(str(i) for i in mininc))
64
 
            f.write('\n')
 
62
            print >>f, 'i',
 
63
            for i in mininc:
 
64
                print >>f, i,
 
65
            print >>f
65
66
        else:
66
 
            f.write('i\n')
67
 
        f.write('1 ' + weave._sha1s[version] + '\n')
68
 
        f.write('n ' + weave._names[version] + '\n')
69
 
        f.write('\n')
 
67
            print >>f, 'i'
 
68
        print >>f, '1', weave._sha1s[version]
 
69
        print >>f, 'n', weave._names[version]
 
70
        print >>f
70
71
 
71
 
    f.write('w\n')
 
72
    print >>f, 'w'
72
73
 
73
74
    for l in weave._weave:
74
75
        if isinstance(l, tuple):
 
76
            assert l[0] in '{}[]'
75
77
            if l[0] == '}':
76
 
                f.write('}\n')
 
78
                print >>f, '}'
77
79
            else:
78
 
                f.write('%s %d\n' % l)
 
80
                print >>f, '%s %d' % l
79
81
        else: # text line
80
82
            if not l:
81
 
                f.write(', \n')
 
83
                print >>f, ', '
82
84
            elif l[-1] == '\n':
83
 
                f.write('. ' + l)
 
85
                assert l.find('\n', 0, -1) == -1
 
86
                print >>f, '.', l,
84
87
            else:
85
 
                f.write(', ' + l + '\n')
 
88
                assert l.find('\n') == -1
 
89
                print >>f, ',', l
86
90
 
87
 
    f.write('W\n')
 
91
    print >>f, 'W'
88
92
 
89
93
 
90
94
 
99
103
 
100
104
def _read_weave_v5(f, w):
101
105
    """Private helper routine to read a weave format 5 file into memory.
102
 
 
 
106
    
103
107
    This is only to be used by read_weave and WeaveFile.__init__.
104
108
    """
105
109
    #  200   0   2075.5080   1084.0360   bzrlib.weavefile:104(_read_weave_v5)
115
119
    #  200   0    851.7250    501.1120   bzrlib.weavefile:104(_read_weave_v5)
116
120
    # +59363 0    311.8780    311.8780   +<method 'append' of 'list' objects>
117
121
    # +200   0     30.2500     30.2500   +<method 'readlines' of 'file' objects>
118
 
 
 
122
                  
119
123
    from weave import WeaveFormatError
120
124
 
121
125
    lines = iter(f.readlines())
122
 
 
 
126
    
123
127
    try:
124
128
        l = lines.next()
125
129
    except StopIteration:
137
141
                w._parents.append(map(int, l[2:].split(' ')))
138
142
            else:
139
143
                w._parents.append([])
 
144
 
140
145
            l = lines.next()[:-1]
 
146
            assert '1 ' == l[0:2]
141
147
            w._sha1s.append(l[2:])
 
148
                
142
149
            l = lines.next()
 
150
            assert 'n ' == l[0:2]
143
151
            name = l[2:-1]
 
152
            assert name not in w._name_map
144
153
            w._names.append(name)
145
154
            w._name_map[name] = ver
 
155
                
146
156
            l = lines.next()
 
157
            assert l == '\n'
 
158
 
147
159
            ver += 1
148
160
        elif l == 'w\n':
149
161
            break
162
174
        elif l == '}\n':
163
175
            w._weave.append(('}', None))
164
176
        else:
 
177
            assert l[0] in '{[]', l
 
178
            assert l[1] == ' ', l
165
179
            w._weave.append((intern(l[0]), int(l[2:])))
 
180
 
166
181
    return w
 
182