Projet

Général

Profil

0001-gesbac-make-mandatory-street-rivoli-code-or-invarian.patch

Serghei Mihai, 27 septembre 2019 11:59

Télécharger (4,04 ko)

Voir les différences:

Subject: [PATCH] gesbac: make mandatory street rivoli code or invariant number
 (#36480)

 passerelle/apps/gesbac/models.py |  5 ++++-
 tests/test_gesbac.py             | 16 ++++++++++++----
 2 files changed, 16 insertions(+), 5 deletions(-)
passerelle/apps/gesbac/models.py
26 26
from passerelle.base.models import BaseResource
27 27
from passerelle.utils.api import endpoint, APIError
28 28
from passerelle.utils import SFTPField
29
from passerelle.views import WrongParameter
29 30

  
30 31
from jsonfield import JSONField
31 32

  
......
62 63
    }),
63 64
    ("street_rivoli_code", {
64 65
        "type": "string",
65
        "required": True
66
        "required": False,
66 67
    }),
67 68
    ("street_name", {
68 69
        "type": "string",
......
371 372
              }
372 373
    )
373 374
    def create_demand(self, request, post_data):
375
        if not (post_data.get('street_rivoli_code') or post_data.get('invariant_number')):
376
            raise WrongParameter(['street_rivoli_code', 'invariant_number'], [])
374 377
        form_id = post_data['form_id']
375 378

  
376 379
        form = Form.objects.create(resource=self, form_id=form_id)
tests/test_gesbac.py
57 57
        'producer_code': 1,
58 58
        'city_insee_code': '75114',
59 59
        'street_name': 'Château',
60
        'street_rivoli_code': 'xxxx',
61 60
        'producer_social_reason': 'SCOP',
62 61
        'producer_last_name': 'Bar',
63 62
        'producer_first_name': 'Foo',
......
73 72
        'card_demand_purpose': 1,
74 73
        'cards_quantity': 1
75 74
    }
75
    response = app.post_json('/gesbac/test/create-demand/', params=payload, status=400)
76

  
77
    payload['street_rivoli_code'] = 'xxxx'
76 78
    response = app.post_json('/gesbac/test/create-demand/', params=payload)
77 79
    assert resource.form_set.filter(status='new').count() == 1
78 80
    form = resource.form_set.get(status='new')
......
81 83
                                              timestamp.strftime('%y%m%d-%H%M%S'))
82 84
    assert response.json['data']['filename'] == expected_filename
83 85
    assert resource.form_set.filter(status='new').count() == 1
86

  
87
    del payload['street_rivoli_code']
88
    payload['invariant_number'] = 'yyy'
89
    response = app.post_json('/gesbac/test/create-demand/', params=payload)
90
    assert resource.form_set.filter(status='new').count() == 2
91

  
84 92
    with sftpserver.serve_content({'output': {expected_filename: 'content'}}):
85 93
        resource.jobs()
86
    assert resource.form_set.filter(status='sent').count() == 1
94
    assert resource.form_set.filter(status='sent').count() == 2
87 95

  
88 96
    payload['owner_email'] = 'bar@example.com'
89 97
    response = app.post_json('/gesbac/test/create-demand/', params=payload)
90 98
    assert resource.form_set.filter(status='new').count() == 1
91 99
    form = resource.form_set.get(status='new')
92 100
    assert len(form.demand_data) == 2
93
    assert response.json['data']['filename'] == '%s%s-4200242.csv' % (resource.output_files_prefix,
101
    assert response.json['data']['filename'] == '%s%s-4200342.csv' % (resource.output_files_prefix,
94 102
                                                                      timestamp.strftime('%y%m%d-%H%M%S'))
95 103
    with sftpserver.serve_content({'output': {response.json['data']['filename']: 'content'}}):
96 104
        resource.jobs()
97
    assert resource.form_set.filter(status='sent').count() == 2
105
    assert resource.form_set.filter(status='sent').count() == 3
98 106

  
99 107

  
100 108
def test_get_demand_response(app, resource, freezer, sftpserver):
101
-