Tests: set 'now' to a time when 'guichet' is open in 'test_openads_create_dossier' (to prevent failure when running test when 'guichet' is closed)

This commit is contained in:
Michael Bideau 2019-08-21 08:54:50 +00:00
parent 990f1fb7bc
commit 910fc8ad57
1 changed files with 18 additions and 15 deletions

View File

@ -473,10 +473,14 @@ def test_openads_create_dossier(atreal_openads, collectivite_1, collectivite_1_g
atreal_openads.create_dossier(req, 'DIA', collectivite='not an integer')
assert unicode(e.value) == "invalid literal for int() with base 10: 'not an integer'"
# guichet is open from Monday/8:30 to Friday/12:15, between 9:00 and 17:00
now_open = datetime.datetime(2019, 8, 7, 14, 0, 0) # wednesday
now_closed = datetime.datetime(2019, 8, 10, 16, 0, 0) # saturday
with pytest.raises(APIError) as e:
with mock.patch('passerelle.utils.Request.post') as requests_post:
requests_post.return_value = fake_resp_bad
atreal_openads.create_dossier(req, 'DIA', collectivite_1.openADS_id)
atreal_openads.create_dossier(req, 'DIA', collectivite_1.openADS_id, now=now_open)
assert unicode(e.value) == "HTTP error: 502"
# TODO update the code and return message when it will be
@ -491,28 +495,27 @@ def test_openads_create_dossier(atreal_openads, collectivite_1, collectivite_1_g
atreal_openads.create_dossier(req, 'DIA', collectivite=999)
assert unicode(e.value) == "HTTP error: 404"
# guichet is open from Monday/8:30 to Friday/12:15, between 9:00 and 17:00
now = datetime.datetime(2019, 8, 10, 16, 0, 0)
jresp = atreal_openads.create_dossier(req, 'DIA', collectivite_1.openADS_id, now=now)
jresp = atreal_openads.create_dossier(req, 'DIA', collectivite_1.openADS_id, now=now_closed)
assert jresp is not None
assert len(jresp) == 1
assert 'message' in jresp
assert jresp['message'] == u"Guichet closed for collectivite '%s'" % collectivite_1
now = '2019-08-10 16:00:00'
jresp = atreal_openads.create_dossier(req, 'DIA', collectivite_1.openADS_id, now=now)
now_str_fmt = '%Y-%m-%d %H:%M:%S'
now_closed_str = now_closed.strftime(now_str_fmt)
jresp = atreal_openads.create_dossier(req, 'DIA', collectivite_1.openADS_id, now=now_closed_str)
assert jresp is not None
assert len(jresp) == 1
assert 'message' in jresp
assert jresp['message'] == u"Guichet closed for collectivite '%s'" % collectivite_1
now = {'invalid': 'type'}
now_invalid = {'invalid': 'type'}
with pytest.raises(APIError) as e:
jresp = atreal_openads.create_dossier(req, 'DIA', collectivite_1.openADS_id, now=now)
jresp = atreal_openads.create_dossier(req, 'DIA', collectivite_1.openADS_id, now=now_invalid)
assert unicode(e.value) == u"Invalid value of type '%s' for now argument of endpoint '%s' (must be: %s)" % (
type(now),
type(now_invalid),
'create_dossier',
"datetime or string formatted to '%s'" % '%Y-%m-%d %H:%M:%S')
"datetime or string formatted to '%s'" % now_str_fmt)
fake_resp_json = {
'numero_dossier' : FAKE_NUMERO_DOSSIER,
@ -531,7 +534,7 @@ def test_openads_create_dossier(atreal_openads, collectivite_1, collectivite_1_g
with mock.patch('passerelle.utils.Request.post') as requests_post:
requests_post.return_value = fake_resp
jresp = atreal_openads.create_dossier(req, 'DIA', collectivite_1.openADS_id)
jresp = atreal_openads.create_dossier(req, 'DIA', collectivite_1.openADS_id, now=now_open)
assert jresp['numero_dossier'] == fake_resp_json['numero_dossier']
assert jresp['recepisse']['b64_content'] == fake_resp_json['files'][0]['b64_content']
assert jresp['recepisse']['content_type'] == 'application/pdf'
@ -542,7 +545,7 @@ def test_openads_create_dossier(atreal_openads, collectivite_1, collectivite_1_g
with pytest.raises(APIError) as e:
with mock.patch('passerelle.utils.Request.post') as requests_post:
requests_post.return_value = fake_resp
atreal_openads.create_dossier(req, 'DIA', collectivite_1.openADS_id)
atreal_openads.create_dossier(req, 'DIA', collectivite_1.openADS_id, now=now_open)
assert unicode(e.value) == u"Expecting '%s' value in JSON response to be a %s (not a %s)" % (
'numero_dossier', 'string', type({}))
@ -551,7 +554,7 @@ def test_openads_create_dossier(atreal_openads, collectivite_1, collectivite_1_g
with pytest.raises(APIError) as e:
with mock.patch('passerelle.utils.Request.post') as requests_post:
requests_post.return_value = fake_resp
atreal_openads.create_dossier(req, 'DIA', collectivite_1.openADS_id)
atreal_openads.create_dossier(req, 'DIA', collectivite_1.openADS_id, now=now_open)
assert unicode(e.value) == u"Expecting 'numero_dossier' key in JSON response"
fake_resp_json['files'][0]['b64_content'] = 'invalid_;{[content}'
@ -559,14 +562,14 @@ def test_openads_create_dossier(atreal_openads, collectivite_1, collectivite_1_g
with pytest.raises(APIError) as e:
with mock.patch('passerelle.utils.Request.post') as requests_post:
requests_post.return_value = fake_resp
atreal_openads.create_dossier(req, 'DIA', collectivite_1.openADS_id)
atreal_openads.create_dossier(req, 'DIA', collectivite_1.openADS_id, now=now_open)
assert unicode(e.value) == u'Failed to decode recepisse content from base 64'
fake_resp._content = 'df[{gfd;g#vfd'
with pytest.raises(APIError) as e:
with mock.patch('passerelle.utils.Request.post') as requests_post:
requests_post.return_value = fake_resp
atreal_openads.create_dossier(req, 'DIA', collectivite_1.openADS_id)
atreal_openads.create_dossier(req, 'DIA', collectivite_1.openADS_id, now=now_open)
assert unicode(e.value) == u'No JSON content returned: %r' % fake_resp._content
job = Job.objects.filter(natural_id=FAKE_NUMERO_DOSSIER).last()