Skip to content

Commit

Permalink
AvailabilityChecker : autorise 401 ou 405 pour SIRI Lite (#3356)
Browse files Browse the repository at this point in the history
  • Loading branch information
AntoineAugusti authored Jul 28, 2023
1 parent 3a6513a commit 4a869b4
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 6 deletions.
2 changes: 1 addition & 1 deletion apps/transport/lib/transport/availability_checker.ex
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ defmodule Transport.AvailabilityChecker do
@spec available?(binary(), binary()) :: boolean
def available?(format, target, use_http_streaming \\ false)

def available?("SIRI", url, _) when is_binary(url) do
def available?(format, url, _) when is_binary(url) and format in ["SIRI", "SIRI Lite"] do
case http_client().get(url, [], follow_redirect: true) do
{:ok, %Response{status_code: code}} when (code >= 200 and code < 300) or code in [401, 405] ->
true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -360,7 +360,7 @@ msgstr ""

#, elixir-autogen, elixir-format
msgid "availability-test-explanations"
msgstr "We test this resource download availability every hour by making an HTTP <code class=\"inline\">HEAD</code> request with a timeout of 5 seconds. If we detect a downtime, we perform subsequent tests every 10 minutes, until the resource is back online.<br><br>For SIRI feeds, we perform a <code class=\"inline\">GET</code> request: a 401 or 405 status code is considered successful."
msgstr "We test this resource download availability every hour by making an HTTP <code class=\"inline\">HEAD</code> request with a timeout of 5 seconds. If we detect a downtime, we perform subsequent tests every 10 minutes, until the resource is back online.<br><br>For SIRI and SIRI Lite feeds, we perform a <code class=\"inline\">GET</code> request: a 401 or 405 status code is considered successful."

#, elixir-autogen, elixir-format
msgid "last content modification"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -360,7 +360,7 @@ msgstr "En savoir plus"

#, elixir-autogen, elixir-format
msgid "availability-test-explanations"
msgstr "Nous testons la disponibilité de cette ressource au téléchargement toutes les heures, en effectuant une requête HTTP de type <code class=\"inline\">HEAD</code> dont le temps de réponse doit être inférieur à 5 secondes. Si nous détectons une indisponibilité, nous effectuons un nouveau test toutes les 10 minutes, jusqu'à ce que la ressource soit à nouveau disponible.<br><br>Pour les flux SIRI, nous effectuons une requête HTTP de type <code class=\"inline\">GET</code> : nous considérons une réponse avec un code 401 ou 405 comme étant disponible."
msgstr "Nous testons la disponibilité de cette ressource au téléchargement toutes les heures, en effectuant une requête HTTP de type <code class=\"inline\">HEAD</code> dont le temps de réponse doit être inférieur à 5 secondes. Si nous détectons une indisponibilité, nous effectuons un nouveau test toutes les 10 minutes, jusqu'à ce que la ressource soit à nouveau disponible.<br><br>Pour les flux SIRI et SIRI Lite, nous effectuons une requête HTTP de type <code class=\"inline\">GET</code> : nous considérons une réponse avec un code 401 ou 405 comme étant disponible."

#, elixir-autogen, elixir-format
msgid "last content modification"
Expand Down
8 changes: 5 additions & 3 deletions apps/transport/test/transport/availability_checker_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -33,23 +33,25 @@ defmodule Transport.AvailabilityCheckerTest do
refute AvailabilityChecker.available?("GTFS", "url500")
end

describe "SIRI resource" do
describe "SIRI or SIRI Lite resource" do
test "401" do
Transport.HTTPoison.Mock
|> expect(:get, fn _url, [], [follow_redirect: true] ->
|> expect(:get, 2, fn _url, [], [follow_redirect: true] ->
{:ok, %HTTPoison.Response{status_code: 401}}
end)

assert AvailabilityChecker.available?("SIRI", "url401")
assert AvailabilityChecker.available?("SIRI Lite", "url401")
end

test "405" do
Transport.HTTPoison.Mock
|> expect(:get, fn _url, [], [follow_redirect: true] ->
|> expect(:get, 2, fn _url, [], [follow_redirect: true] ->
{:ok, %HTTPoison.Response{status_code: 405}}
end)

assert AvailabilityChecker.available?("SIRI", "url405")
assert AvailabilityChecker.available?("SIRI Lite", "url405")
end
end

Expand Down

0 comments on commit 4a869b4

Please sign in to comment.