124
125
# overwrite (delete) existing when asked
125
126
options = {"overwrite": True}
126
bh.get(dest, options)
127
self.assertTrue(bh.get(dest, options))
127
128
_rmtree.assert_called_with(dest)
129
130
# don't overwrite if not asked
130
131
options = {"overwrite": False}
131
bh.get(dest, options)
132
self.assertFalse(bh.get(dest, options))
132
133
_rmtree.assert_not_called()
134
135
# don't overwrite if source = parent
135
136
options = {"overwrite": True}
136
137
bh.is_same_branch = MagicMock(return_value=True)
137
bh.get(dest, options)
138
self.assertTrue(bh.get(dest, options))
138
139
_rmtree.assert_not_called()
140
141
@patch("codetree.handlers.check_output")
143
144
source = BzrURLs[0]
145
146
bh = BzrSourceHandler(source)
147
assert(was_called_with_cmd(_call, ('bzr', 'branch', source, dest)))
147
self.assertTrue(bh.get(dest))
148
self.assertTrue(was_called_with_cmd(_call, ('bzr', 'branch', source, dest)))
149
150
@patch("codetree.handlers.check_output")
150
151
@patch("codetree.handlers.os.makedirs")
223
224
@patch('codetree.handlers.os.path.exists')
224
225
@patch('codetree.handlers.urllib2.urlopen')
225
226
def test_gets_file(self, _urlopen, _exists, _unlink):
226
_urlopen.return_value = StringIO("words words")
227
hh = HttpFileHandler(HttpURLs[0])
229
with patch('codetree.handlers.open', _open, create=True):
231
_open.assert_called_with("foo", "w")
232
_urlopen.assert_called_with(HttpURLs[0])
229
_urlopen.return_value = StringIO("words words")
230
hh = HttpFileHandler(HttpURLs[0])
234
_exists.return_value = False
235
with patch('codetree.handlers.open', _open, create=True):
236
self.assertTrue(hh.get(destfile))
237
self.assertFalse(_unlink.called)
238
_open.assert_called_with(destfile, "w")
239
_urlopen.assert_called_with(HttpURLs[0])
241
@patch('codetree.handlers.os.unlink')
242
@patch('codetree.handlers.os.path.exists')
243
@patch('codetree.handlers.urllib2.urlopen')
244
def test_gets_file_no_overwrite(self, _urlopen, _exists, _unlink):
247
_urlopen.return_value = StringIO("words words")
248
hh = HttpFileHandler(HttpURLs[0])
252
_exists.return_value = True
253
with patch('codetree.handlers.open', _open, create=True):
254
self.assertFalse(hh.get(destfile))
255
self.assertFalse(_unlink.called)
256
self.assertFalse(_open.called)
257
self.assertFalse(_urlopen.called)
259
@patch('codetree.handlers.os.unlink')
260
@patch('codetree.handlers.os.path.exists')
261
@patch('codetree.handlers.urllib2.urlopen')
262
def test_gets_file_with_overwite(self, _urlopen, _exists, _unlink):
265
_urlopen.return_value = StringIO("words words")
266
hh = HttpFileHandler(HttpURLs[0])
268
# Overwrite existing file
270
_exists.return_value = True
271
with patch('codetree.handlers.open', _open, create=True):
272
self.assertTrue(hh.get(destfile, options={"overwrite": True}))
273
_unlink.assert_called_with(destfile)
274
_open.assert_called_with(destfile, "w")
275
_urlopen.assert_called_with(HttpURLs[0])
277
@patch('codetree.handlers.os.unlink')
278
@patch('codetree.handlers.os.path.exists')
279
@patch('codetree.handlers.urllib2.urlopen')
280
def test_gets_file_bad_url(self, _urlopen, _exists, _unlink):
283
_urlopen.return_value = StringIO("words words")
284
hh = HttpFileHandler(HttpURLs[0])
288
_exists.return_value = False
289
_urlopen.side_effect = URLError('failed')
290
with patch('codetree.handlers.open', _open, create=True):
291
self.assertFalse(hh.get(destfile))