|
98 | 98 | end
|
99 | 99 |
|
100 | 100 | #-------------------------------------------------------------------------------
|
| 101 | +function load_list(filename) |
| 102 | + lines = eachline(joinpath(@__DIR__, filename)) |
| 103 | + filter(!isempty, strip.(lines)) |
| 104 | +end |
101 | 105 | @testset "Data set name parsing" begin
|
102 |
| - @testset "Valid name: $name" for name in ( |
103 |
| - "a_b", "a-b", "a1", "δεδομένα", "a/b", "a/b/c", "a-", "b_", |
104 |
| - "1", "a/1", "123", "12ab/34cd", "1/2/3", "1-2-3", "x_-__", "a---", |
105 |
| - ) |
106 |
| - @test DataSets.check_dataset_name(name) === nothing |
107 |
| - @test DataSets._split_dataspec(name) == (name, nothing, nothing) |
| 106 | + @testset "Valid names" begin |
| 107 | + valid_names = load_list("testnames-valid.txt") |
| 108 | + @test !isempty(valid_names) |
| 109 | + @testset "Valid name: $name" for name in valid_names |
| 110 | + @test DataSets.check_dataset_name(name) === nothing |
| 111 | + @test DataSets._split_dataspec(name) == (name, nothing, nothing) |
| 112 | + # Also test that the name is still valid when it appears as part of |
| 113 | + # a path elements. |
| 114 | + let path_name = "foo/$(name)" |
| 115 | + @test DataSets.check_dataset_name(path_name) === nothing |
| 116 | + @test DataSets._split_dataspec(path_name) == (path_name, nothing, nothing) |
| 117 | + end |
| 118 | + let path_name = "$(name)/foo" |
| 119 | + @test DataSets.check_dataset_name(path_name) === nothing |
| 120 | + @test DataSets._split_dataspec(path_name) == (path_name, nothing, nothing) |
| 121 | + end |
| 122 | + let path_name = "foo/$(name)/bar" |
| 123 | + @test DataSets.check_dataset_name(path_name) === nothing |
| 124 | + @test DataSets._split_dataspec(path_name) == (path_name, nothing, nothing) |
| 125 | + end |
| 126 | + end |
108 | 127 | end
|
109 | 128 |
|
110 |
| - @testset "Invalid name: $name" for name in ( |
111 |
| - "a b", "a.b", "a/b/", "a//b", "/a/b", "a/-", "a/ _/b", |
112 |
| - "a/-a", "a/-1", |
113 |
| - ) |
114 |
| - @test_throws ErrorException DataSets.check_dataset_name(name) |
115 |
| - @test DataSets._split_dataspec(name) == (nothing, nothing, nothing) |
| 129 | + @testset "Invalid names" begin |
| 130 | + invalid_names = load_list("testnames-invalid.txt") |
| 131 | + @test !isempty(invalid_names) |
| 132 | + @testset "Invalid name: $name" for name in invalid_names |
| 133 | + @test_throws ErrorException DataSets.check_dataset_name(name) |
| 134 | + @test DataSets._split_dataspec(name) == (nothing, nothing, nothing) |
| 135 | + # Also test that the name is still invalid when it appears as part of |
| 136 | + # a path elements. |
| 137 | + let path_name = "foo/$(name)" |
| 138 | + @test_throws ErrorException DataSets.check_dataset_name(path_name) === nothing |
| 139 | + @test DataSets._split_dataspec(path_name) == (nothing, nothing, nothing) |
| 140 | + end |
| 141 | + let path_name = "$(name)/foo" |
| 142 | + @test_throws ErrorException DataSets.check_dataset_name(path_name) === nothing |
| 143 | + @test DataSets._split_dataspec(path_name) == (nothing, nothing, nothing) |
| 144 | + end |
| 145 | + let path_name = "foo/$(name)/bar" |
| 146 | + @test_throws ErrorException DataSets.check_dataset_name(path_name) === nothing |
| 147 | + @test DataSets._split_dataspec(path_name) == (nothing, nothing, nothing) |
| 148 | + end |
| 149 | + end |
116 | 150 | end
|
117 | 151 | end
|
118 | 152 |
|
|
0 commit comments