Code Duplication    Length = 50-50 lines in 2 locations

oe_geoutils/validation/validators_location_elements.py 1 location

@@ 343-392 (lines=50) @@
340
                'ongeldig gemeente_id {0}'.format(gemeente_id)
341
            )
342
        if gemeente_niscode is None:  # pragma no cover  # normally the first 2 checks will fail in this case
343
            raise colander.Invalid(
344
                node,
345
                'ongeldige gemeente_niscode {0}'.format(gemeente_niscode)
346
            )
347
        if provincie is None:  # pragma no cover   # normally the first 2 checks will fail in this case
348
            raise colander.Invalid(
349
                node,
350
                'ongeldige provincie {0}'.format(provincie)
351
            )
352
        if provincie_niscode is None:  # pragma no cover   # normally the first 2 checks will fail in this case
353
            raise colander.Invalid(
354
                node,
355
                'ongeldige provincie_niscode {0}'.format(provincie_niscode)
356
            )
357
358
    def _validate_locatie_perceel(self, capakey_gateway, locatie_element, node):
359
        self._validate_provincie_gemeente(locatie_element, node)
360
        kadastrale_afdelingen = capakey_gateway.list_kadastrale_afdelingen()
361
        capakey = locatie_element['perceel']['capakey']
362
        afdeling_niscode = int(capakey[0:5])
363
        afdeling = next((afd for afd in kadastrale_afdelingen if afd.id == afdeling_niscode), None)
364
        if afdeling is None:
365
            raise colander.Invalid(
366
                node,
367
                'ongeldige kadastrale afdeling voor capakey {0}'.format(capakey)
368
            )
369
370
    def _validate_locatie_openbaar_domein(self, locatie_element, node):
371
        self._validate_provincie_gemeente(locatie_element, node)
372
373
    def _validate_locatie(self, locatie_element, node):
374
        self._validate_provincie_gemeente(locatie_element, node)
375
376
    def _validate_locatie_adres(self, crab_gateway, locatie_element, node):
377
        self._validate_provincie_gemeente(locatie_element, node)
378
        gemeente_id = locatie_element.get('gemeente', {}).get('id', None)
379
        straat_id = locatie_element.get('straat_id', None)
380
        huisnummer_id = locatie_element.get('huisnummer_id', None)
381
        postcode = locatie_element.get('postcode', None)
382
        subadres_id = locatie_element.get('subadres_id', None)
383
384
        if locatie_element.get('deelgemeente', False):
385
            # if has deelgemeente naam and no niscode
386
            if locatie_element.get('deelgemeente').get('naam', False) and \
387
                    locatie_element.get('deelgemeente').get('niscode', None) is None:
388
                raise colander.Invalid(node, 'deelgemeente moet een niscode hebben')
389
390
        if locatie_element.get('deelgemeente', {}).get('niscode', False) and \
391
                locatie_element.get('gemeente', {}).get('niscode', False):  # if gemeente and deelgemeente has niscode
392
            if _get_hoofd_niscode(locatie_element.get('deelgemeente', {}).get('niscode')) != \
393
                    locatie_element.get('gemeente', {}).get('niscode'):
394
                raise colander.Invalid(node,
395
                                       'niscode van gemeente en deelgemeente moet hetzelfde zijn '

oe_geoutils/validation/validators_address.py 1 location

@@ 223-272 (lines=50) @@
220
                        node,
221
                        'ongeldig gemeente_id {0}'.format(gemeente_id)
222
                    )
223
                if straat_id is not None:
224
                    gemeente = crab_gateway.get_gemeente_by_id(gemeente_id)
225
                    try:
226
                        straat = crab_gateway.get_straat_by_id(straat_id)
227
                    except (GatewayRuntimeException, GatewayResourceNotFoundException, AttributeError):
228
                        raise colander.Invalid(
229
                            node,
230
                            'ongeldig straat_id'
231
                        )
232
                    if straat.gemeente_id != gemeente_id:
233
                        raise colander.Invalid(
234
                            node,
235
                            'de straat %s met id %s ligt niet in gemeente %s' %
236
                            (adres.get('straat', ''), straat_id, gemeente.naam)
237
                        )
238
                    if huisnummer_id is not None:
239
                        try:
240
                            huisnummer = crab_gateway.get_huisnummer_by_id(huisnummer_id)
241
                        except (GatewayRuntimeException, GatewayResourceNotFoundException, AttributeError):
242
                            raise colander.Invalid(
243
                                node,
244
                                'ongeldig huisnummer_id'
245
                            )
246
                        if huisnummer.straat_id != straat_id:
247
                            raise colander.Invalid(
248
                                node,
249
                                'het huisnummer %s met id %s ligt niet in straat %s' %
250
                                (adres.get('huisnummer', ''), huisnummer_id, straat.label)
251
                            )
252
                        if postcode is not None:
253
                            postkanton = crab_gateway.get_postkanton_by_huisnummer(huisnummer_id)
254
                            if postcode != str(postkanton.id):
255
                                raise colander.Invalid(
256
                                    node,
257
                                    'postcode %s is niet correct voor dit adres, mogelijke postcode is %s' %
258
                                    (postcode, postkanton.id)
259
                                )
260
                        if subadres_id is not None:
261
                            try:
262
                                subadres = crab_gateway.get_subadres_by_id(subadres_id)
263
                            except (GatewayRuntimeException, GatewayResourceNotFoundException, AttributeError):
264
                                raise colander.Invalid(
265
                                    node,
266
                                    'ongeldig subadres_id'
267
                                )
268
                            if subadres.huisnummer_id != huisnummer_id:
269
                                raise colander.Invalid(
270
                                    node,
271
                                    'het subadres %s met id %s ligt niet op huisnummer %s' %
272
                                    (adres.get('subadres', ''), subadres_id, huisnummer.huisnummer)
273
                                )
274
                if straat_id is None and huisnummer_id is not None:
275
                    raise colander.Invalid(