12
12
(["foo" , "/bar" ], "foo/bar" ),
13
13
(["/foo" , "baz" , "/bar" ], "/foo/baz/bar" ),
14
14
(["" , "foo" , "bar" ], "foo/bar" ),
15
- (["" , "/foo" , "bar" ], "/ foo/bar" ),
16
- (["" , "/foo/" , "bar" ], "/ foo/bar" ),
17
- (["" , "" , "" , "/foo" , "bar" ], "/ foo/bar" ),
18
- (["" , "" , "/foo/" , "" , "bar" ], "/ foo/bar" ),
19
- (["" , "" , "/foo/" , "" , "" , "bar/" ], "/ foo/bar/ " ),
20
- (["/foo" , "" ], "/foo/ " ),
21
- (["/foo" , "" , "" , "" ], "/foo/ " ),
22
- (["/foo//" , "bar" ], "/foo// bar" ),
15
+ (["" , "/foo" , "bar" ], "foo/bar" ),
16
+ (["" , "/foo/" , "bar" ], "foo/bar" ),
17
+ (["" , "" , "" , "/foo" , "bar" ], "foo/bar" ),
18
+ (["" , "" , "/foo/" , "" , "bar" ], "foo/bar" ),
19
+ (["" , "" , "/foo/" , "" , "" , "bar/" ], "foo/bar" ),
20
+ (["/foo" , "" ], "/foo" ),
21
+ (["/foo" , "" , "" , "" ], "/foo" ),
22
+ (["/foo//" , "bar" ], "/foo/bar" ),
23
23
(["foo" ], "foo" ),
24
24
(["" ], "" ),
25
25
(["" , "" ], "" ),
26
26
(["'not " , "sanitized'\0 /; rm -rf *" ], "'not /sanitized'\0 /; rm -rf *" ),
27
- (["foo/" , "/bar" ], "foo// bar" ),
28
- (["foo" , "" , "/bar" ], "foo// bar" ),
27
+ (["foo/" , "/bar" ], "foo/bar" ),
28
+ (["foo" , "" , "/bar" ], "foo/bar" ),
29
29
([b"foo" , "bar" ], TypeError ),
30
30
(["foo" , b"bar" ], TypeError ),
31
- ([None , "foo" ], TypeError ),
31
+ ([None , "foo" ], "foo" ),
32
+ (["foo" , [], "bar" ], "foo/bar" ),
33
+ (["foo" , ["baz" ], "bar" ], TypeError ),
34
+ (["/" , "foo" , "bar" ], "/foo/bar" ),
35
+ (["///foo" , "bar" ], "/foo/bar" ),
32
36
],
33
37
)
34
38
def test_join_paths (args , expected ):
@@ -37,3 +41,7 @@ def test_join_paths(args, expected):
37
41
else :
38
42
with pytest .raises (expected ):
39
43
_ = join_paths (* args )
44
+
45
+
46
+ def test_join_paths_with_separator ():
47
+ assert join_paths ("this" , "is" , "not" , "a" , "path" , sep = "|" ) == "this|is|not|a|path"
0 commit comments