Skip to content

Commit cbe7720

Browse files
committed
NeTEx v0.2.1
Utilise le profil `pan:french_profile:1` qui introduit des règles spécifiques au profil France. Ce profil reprend les règles du profil `enroute:starter-kit` par copie. Ce profil est configuré à froid par un script.
1 parent eed1a8a commit cbe7720

8 files changed

Lines changed: 30 additions & 22 deletions

File tree

apps/transport/lib/validators/enroute_chouette_valid_client.ex

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ defmodule Transport.EnRouteChouetteValidClient.Wrapper do
44
Documentation: https://documenter.getpostman.com/view/9950294/2sA3e2gVEE
55
"""
66

7-
@callback create_a_validation(Path.t()) :: binary()
7+
@callback create_a_validation(filepath :: Path.t()) :: binary()
8+
@callback create_a_validation(filepath :: Path.t(), rule_set :: binary()) :: binary()
89
@callback get_a_validation(binary()) ::
910
:pending
1011
| {:successful, binary(), integer()}
@@ -25,11 +26,11 @@ defmodule Transport.EnRouteChouetteValidClient do
2526
@base_url "https://chouette-valid.enroute.mobi/api/validations"
2627

2728
@impl Transport.EnRouteChouetteValidClient.Wrapper
28-
def create_a_validation(filepath) do
29+
def create_a_validation(filepath, rule_set \\ "enroute:starter-kit") do
2930
form =
3031
{:multipart,
3132
[
32-
{"validation[rule_set]", "enroute:starter-kit"},
33+
{"validation[rule_set]", rule_set},
3334
{"validation[include_schema]", "true"},
3435
make_file_part("validation[file]", filepath)
3536
]}

apps/transport/lib/validators/netex/CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,10 @@ without any specific inline documentation.
1616
Categories are used to build the summary of a NeTEx validation. Each category
1717
has a title, a description (providing links to any relevant documentation), and
1818
some hints for usual errors (optional).
19+
20+
## 0.2.1
21+
22+
- Uses the profile `pan:french_profile:1` (which includes rules from
23+
`enroute:starter-kit`)
24+
- new rules introduced to check specific rules of the French profile
25+
(mandatory attributes)

apps/transport/lib/validators/netex/validator.ex

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ defmodule Transport.Validators.NeTEx.Validator do
66

77
require Logger
88
alias Transport.Jobs.NeTExPollerJob, as: Poller
9-
alias Transport.Validators.NeTEx.ResultsAdapters.V0_2_0, as: ResultsAdapter
9+
alias Transport.Validators.NeTEx.ResultsAdapters.V0_2_1, as: ResultsAdapter
1010

1111
@behaviour Transport.Validators.Validator
1212

@@ -32,7 +32,7 @@ defmodule Transport.Validators.NeTEx.Validator do
3232
def validator_name, do: "enroute-chouette-netex-validator"
3333

3434
# This will change with an actual versioning of the validator
35-
def validator_version, do: "0.2.0"
35+
def validator_version, do: "0.2.1"
3636

3737
@impl Transport.Validators.Validator
3838
def validate_and_save(%DB.ResourceHistory{} = resource_history) do
@@ -205,7 +205,7 @@ defmodule Transport.Validators.NeTEx.Validator do
205205
setup_validation(filepath) |> poll_validation_results(0)
206206
end
207207

208-
defp setup_validation(filepath), do: client().create_a_validation(filepath)
208+
defp setup_validation(filepath), do: client().create_a_validation(filepath, "pan:french_profile:1")
209209

210210
def poll_validation_results(validation_id, retries) do
211211
case client().get_a_validation(validation_id) do

apps/transport/test/support/enroute_chouette_valid_client_helpers.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ defmodule Transport.Test.EnRouteChouetteValidClientHelpers do
44
"""
55
import Mox
66

7-
def expect_create_validation do
7+
def expect_create_validation(ruleset) do
88
validation_id = with_running_validation()
99

10-
expect(Transport.EnRouteChouetteValidClient.Mock, :create_a_validation, fn _ -> validation_id end)
10+
expect(Transport.EnRouteChouetteValidClient.Mock, :create_a_validation, fn _, ^ruleset -> validation_id end)
1111

1212
validation_id
1313
end

apps/transport/test/transport/jobs/netex_poller_job_test.exs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ defmodule Transport.Jobs.NeTExPollerJobTest do
5656

5757
assert multi_validation.command == "http://localhost:9999/chouette-valid/#{validation_id}"
5858
assert multi_validation.validator == "enroute-chouette-netex-validator"
59-
assert multi_validation.validator_version == "0.2.0"
59+
assert multi_validation.validator_version == "0.2.1"
6060
assert multi_validation.result == %{}
6161
assert multi_validation.metadata.metadata == %{"retries" => attempts, "elapsed_seconds" => duration}
6262
end
@@ -77,7 +77,7 @@ defmodule Transport.Jobs.NeTExPollerJobTest do
7777

7878
assert multi_validation.command == "http://localhost:9999/chouette-valid/#{validation_id}/messages"
7979
assert multi_validation.validator == "enroute-chouette-netex-validator"
80-
assert multi_validation.validator_version == "0.2.0"
80+
assert multi_validation.validator_version == "0.2.1"
8181
assert multi_validation.metadata.metadata == %{"retries" => attempts, "elapsed_seconds" => duration}
8282

8383
assert multi_validation.result == %{

apps/transport/test/transport/jobs/on_demand_netex_poller_job_test.exs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ defmodule Transport.Test.Transport.Jobs.OnDemandNeTExPollerJobTest do
5353
result: nil,
5454
validation_timestamp: date,
5555
validator: "enroute-chouette-netex-validator",
56-
validator_version: "0.2.0"
56+
validator_version: "0.2.1"
5757
} = validation |> DB.Repo.reload() |> DB.Repo.preload(:metadata)
5858

5959
assert DateTime.diff(date, DateTime.utc_now()) <= 1
@@ -75,7 +75,7 @@ defmodule Transport.Test.Transport.Jobs.OnDemandNeTExPollerJobTest do
7575
result: %{},
7676
validation_timestamp: date,
7777
validator: "enroute-chouette-netex-validator",
78-
validator_version: "0.2.0"
78+
validator_version: "0.2.1"
7979
} = validation |> DB.Repo.reload() |> DB.Repo.preload(:metadata)
8080

8181
assert DateTime.diff(date, DateTime.utc_now()) <= 1

apps/transport/test/transport/jobs/on_demand_validation_job_test.exs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -492,14 +492,14 @@ defmodule Transport.Test.Transport.Jobs.OnDemandValidationJobTest do
492492
end
493493

494494
def expect_netex_with_errors(messages) do
495-
validation_id = expect_create_validation()
495+
validation_id = expect_create_validation("pan:french_profile:1")
496496
expect_failed_validation(validation_id, 10)
497497

498498
expect_get_messages(validation_id, messages)
499499
end
500500

501501
def expect_netex_long_lasting do
502-
expect_create_validation() |> expect_pending_validation()
502+
expect_create_validation("pan:french_profile:1") |> expect_pending_validation()
503503
end
504504

505505
defp run_job(%DB.MultiValidation{} = validation) do

apps/transport/test/transport/validators/netex/validator_test.exs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,23 +45,23 @@ defmodule Transport.Validators.NeTEx.ValidatorTest do
4545
test "valid NeTEx" do
4646
resource_history = mk_netex_resource()
4747

48-
validation_id = expect_create_validation() |> expect_successful_validation(12)
48+
validation_id = expect_create_validation("pan:french_profile:1") |> expect_successful_validation(12)
4949

5050
assert :ok == Validator.validate_and_save(resource_history)
5151

5252
multi_validation = load_multi_validation(resource_history.id)
5353

5454
assert multi_validation.command == "http://localhost:9999/chouette-valid/#{validation_id}"
5555
assert multi_validation.validator == "enroute-chouette-netex-validator"
56-
assert multi_validation.validator_version == "0.2.0"
56+
assert multi_validation.validator_version == "0.2.1"
5757
assert multi_validation.result == %{}
5858
assert multi_validation.metadata.metadata == %{"retries" => 0, "elapsed_seconds" => 12}
5959
end
6060

6161
test "pending validation" do
6262
resource_history = mk_netex_resource()
6363

64-
validation_id = expect_create_validation() |> expect_pending_validation()
64+
validation_id = expect_create_validation("pan:french_profile:1") |> expect_pending_validation()
6565

6666
assert :ok == Validator.validate_and_save(resource_history)
6767

@@ -79,7 +79,7 @@ defmodule Transport.Validators.NeTEx.ValidatorTest do
7979
test "invalid NeTEx" do
8080
resource_history = mk_netex_resource()
8181

82-
validation_id = expect_create_validation() |> expect_failed_validation(31)
82+
validation_id = expect_create_validation("pan:french_profile:1") |> expect_failed_validation(31)
8383

8484
expect_get_messages(validation_id, @sample_error_messages)
8585

@@ -89,7 +89,7 @@ defmodule Transport.Validators.NeTEx.ValidatorTest do
8989

9090
assert multi_validation.command == "http://localhost:9999/chouette-valid/#{validation_id}/messages"
9191
assert multi_validation.validator == "enroute-chouette-netex-validator"
92-
assert multi_validation.validator_version == "0.2.0"
92+
assert multi_validation.validator_version == "0.2.1"
9393
assert multi_validation.metadata.metadata == %{"retries" => 0, "elapsed_seconds" => 31}
9494

9595
assert multi_validation.result == %{
@@ -136,7 +136,7 @@ defmodule Transport.Validators.NeTEx.ValidatorTest do
136136
test "valid NeTEx" do
137137
resource_url = mk_raw_netex_resource()
138138

139-
expect_create_validation() |> expect_successful_validation(9)
139+
expect_create_validation("pan:french_profile:1") |> expect_successful_validation(9)
140140

141141
assert {:ok, %{"validations" => %{}, "metadata" => %{retries: 0, elapsed_seconds: 9}}} ==
142142
Validator.validate(resource_url)
@@ -145,7 +145,7 @@ defmodule Transport.Validators.NeTEx.ValidatorTest do
145145
test "invalid NeTEx" do
146146
resource_url = mk_raw_netex_resource()
147147

148-
validation_id = expect_create_validation() |> expect_failed_validation(25)
148+
validation_id = expect_create_validation("pan:french_profile:1") |> expect_failed_validation(25)
149149

150150
expect_get_messages(validation_id, @sample_error_messages)
151151

@@ -188,7 +188,7 @@ defmodule Transport.Validators.NeTEx.ValidatorTest do
188188
test "pending" do
189189
resource_url = mk_raw_netex_resource()
190190

191-
validation_id = expect_create_validation() |> expect_pending_validation()
191+
validation_id = expect_create_validation("pan:french_profile:1") |> expect_pending_validation()
192192

193193
assert {:pending, validation_id} == Validator.validate(resource_url)
194194
end

0 commit comments

Comments
 (0)