0003-to-be-fixed-up-return-to-api_id-s-length-of-30-chara.patch
passerelle/apps/base_adresse/migrations/0019_auto_20210712_1233.py | ||
---|---|---|
1 |
# Generated by Django 2.2.19 on 2021-07-12 10:33 |
|
2 | ||
3 |
from django.db import migrations, models |
|
4 | ||
5 | ||
6 |
class Migration(migrations.Migration): |
|
7 | ||
8 |
dependencies = [ |
|
9 |
('base_adresse', '0018_text_to_jsonb'), |
|
10 |
] |
|
11 | ||
12 |
operations = [ |
|
13 |
migrations.AlterField( |
|
14 |
model_name='addresscachemodel', |
|
15 |
name='api_id', |
|
16 |
field=models.CharField(max_length=128, unique=True), |
|
17 |
), |
|
18 |
] |
passerelle/apps/base_adresse/models.py | ||
---|---|---|
157 | 157 |
data = self.format_address_data(feature) |
158 | 158 |
result.append(data) |
159 | 159 |
address, created = AddressCacheModel.objects.get_or_create( |
160 |
api_id=data['id'], defaults={'data': data} |
|
160 |
api_id=data['id'][:30], defaults={'data': data}
|
|
161 | 161 |
) |
162 | 162 |
if not created: |
163 | 163 |
address.update_timestamp() |
... | ... | |
172 | 172 |
lat, lon, q = None, None, None |
173 | 173 |
# Try cache |
174 | 174 |
try: |
175 |
address = AddressCacheModel.objects.get(api_id=id) |
|
175 |
address = AddressCacheModel.objects.get(api_id=id[:30])
|
|
176 | 176 |
except AddressCacheModel.DoesNotExist: |
177 | 177 |
pass |
178 | 178 |
else: |
... | ... | |
243 | 243 |
continue # skip unknown |
244 | 244 |
result = self.format_address_data(feature) |
245 | 245 |
address, created = AddressCacheModel.objects.get_or_create( |
246 |
api_id=result['id'], defaults={'data': result} |
|
246 |
api_id=result['id'][:30], defaults={'data': result}
|
|
247 | 247 |
) |
248 | 248 |
if not created: |
249 | 249 |
address.update_timestamp() |
... | ... | |
658 | 658 | |
659 | 659 | |
660 | 660 |
class AddressCacheModel(models.Model): |
661 |
api_id = models.CharField(max_length=128, unique=True)
|
|
661 |
api_id = models.CharField(max_length=30, unique=True)
|
|
662 | 662 |
data = JSONField() |
663 | 663 |
timestamp = models.DateTimeField(auto_now=True) |
664 | 664 |
tests/test_base_adresse.py | ||
---|---|---|
841 | 841 |
assert data['text'] == 'Rue Roger Halope 49000 Angers' |
842 | 842 | |
843 | 843 |
api_id = data['id'] |
844 |
assert AddressCacheModel.objects.filter(api_id=api_id).exists() |
|
844 |
assert AddressCacheModel.objects.filter(api_id=api_id[:30]).exists()
|
|
845 | 845 |
assert AddressCacheModel.objects.count() == 1 |
846 | 846 | |
847 | 847 |
resp = app.get('/base-adresse/%s/addresses?id=%s' % (base_adresse.slug, api_id)) |
... | ... | |
936 | 936 |
assert data['text'] == 'Rue Roger Halope 49000 Angers' |
937 | 937 | |
938 | 938 |
api_id = data['id'] |
939 |
assert AddressCacheModel.objects.filter(api_id=api_id).exists() |
|
939 |
assert AddressCacheModel.objects.filter(api_id=api_id[:30]).exists()
|
|
940 | 940 |
assert AddressCacheModel.objects.count() == 1 |
941 | 941 |
first_timestamp = AddressCacheModel.objects.get().timestamp |
942 | 942 | |
943 |
- |