base_adresse: don't clear streets if file is empty (#20308)
This commit is contained in:
parent
8bbae6f2c4
commit
e3d3ba295a
|
@ -176,6 +176,7 @@ class BaseAdresse(BaseResource):
|
|||
if ban_file.status_code != 200:
|
||||
continue
|
||||
|
||||
line = _not_found = object()
|
||||
for line in bz2.decompress(ban_file.content).splitlines():
|
||||
street_info = json.loads(line)
|
||||
if street_info['type'] == 'street' and street_info['postcode'].startswith(zipcodes):
|
||||
|
@ -191,6 +192,8 @@ class BaseAdresse(BaseResource):
|
|||
street[0].type = street_info['type']
|
||||
street[0].citycode = street_info['citycode']
|
||||
street[0].save()
|
||||
if line is _not_found:
|
||||
raise Exception('bano file is empty')
|
||||
|
||||
self.get_streets_queryset().filter(last_update__lt=start_update).delete()
|
||||
|
||||
|
|
|
@ -17,6 +17,7 @@ def test_jobs(mocked_get, app, base_adresse, freezer):
|
|||
filepath = os.path.join(os.path.dirname(__file__), 'data', 'update_streets_test.bz2')
|
||||
mocked_get.return_value = utils.FakedResponse(content=open(filepath).read(), status_code=200)
|
||||
|
||||
freezer.move_to('2019-01-01 00:00:00')
|
||||
job = base_adresse.add_job('update_streets_data')
|
||||
assert job.status == 'registered'
|
||||
|
||||
|
@ -24,6 +25,22 @@ def test_jobs(mocked_get, app, base_adresse, freezer):
|
|||
assert Job.objects.get(id=job.id).status == 'completed'
|
||||
assert StreetModel.objects.count() == 3
|
||||
|
||||
# don't delete streets if bano file is empty
|
||||
mocked_get.return_value = utils.FakedResponse(content='', status_code=200)
|
||||
freezer.move_to('2019-01-01 12:00:00')
|
||||
job = base_adresse.add_job('update_streets_data')
|
||||
assert job.status == 'registered'
|
||||
|
||||
base_adresse.jobs()
|
||||
assert Job.objects.get(id=job.id).status == 'failed'
|
||||
assert Job.objects.get(id=job.id).status_details == {'error_summary': 'Exception: bano file is empty'}
|
||||
assert ResourceLog.objects.all().count() == 1
|
||||
assert ResourceLog.objects.all()[0].message == (
|
||||
'error running update_streets_data job (bano file is empty)')
|
||||
assert StreetModel.objects.count() == 3
|
||||
|
||||
mocked_get.return_value = utils.FakedResponse(content=open(filepath).read(), status_code=200)
|
||||
|
||||
StreetModel.objects.all().delete()
|
||||
|
||||
ResourceLog.objects.all().delete()
|
||||
|
|
Loading…
Reference in New Issue