From 910fc8ad57813b557b6af2a970734fe1552994b4 Mon Sep 17 00:00:00 2001 From: Michael Bideau Date: Wed, 21 Aug 2019 08:54:50 +0000 Subject: [PATCH] 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) --- tests/test_atreal_openads.py | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/tests/test_atreal_openads.py b/tests/test_atreal_openads.py index ad3544c..ae28d15 100644 --- a/tests/test_atreal_openads.py +++ b/tests/test_atreal_openads.py @@ -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()