@@ -175,6 +175,42 @@ def test_contains_magic(self):
175175 self .assertTrue (self .ptr1 in self .ptr1 )
176176 self .assertFalse (self .ptr3 in self .ptr1 )
177177
178+ def test_join (self ):
179+
180+ ptr12a = self .ptr1 .join (self .ptr2 )
181+ self .assertEqual (ptr12a .path , "/a/b/c/a/b" )
182+
183+ ptr12b = self .ptr1 .join (self .ptr2 .parts )
184+ self .assertEqual (ptr12b .path , "/a/b/c/a/b" )
185+
186+ ptr12c = self .ptr1 .join (self .ptr2 .parts [0 :1 ])
187+ self .assertEqual (ptr12c .path , "/a/b/c/a" )
188+
189+ ptr12d = self .ptr1 .join ("/a/b" )
190+ self .assertEqual (ptr12d .path , "/a/b/c/a/b" )
191+
192+ ptr12e = self .ptr1 .join (["a" , "b" ])
193+ self .assertEqual (ptr12e .path , "/a/b/c/a/b" )
194+
195+ self .assertRaises (JsonPointerException , self .ptr1 .join , 0 )
196+
197+ def test_join_magic (self ):
198+
199+ ptr12a = self .ptr1 / self .ptr2
200+ self .assertEqual (ptr12a .path , "/a/b/c/a/b" )
201+
202+ ptr12b = self .ptr1 / self .ptr2 .parts
203+ self .assertEqual (ptr12b .path , "/a/b/c/a/b" )
204+
205+ ptr12c = self .ptr1 / self .ptr2 .parts [0 :1 ]
206+ self .assertEqual (ptr12c .path , "/a/b/c/a" )
207+
208+ ptr12d = self .ptr1 / "/a/b"
209+ self .assertEqual (ptr12d .path , "/a/b/c/a/b" )
210+
211+ ptr12e = self .ptr1 / ["a" , "b" ]
212+ self .assertEqual (ptr12e .path , "/a/b/c/a/b" )
213+
178214class WrongInputTests (unittest .TestCase ):
179215
180216 def test_no_start_slash (self ):
0 commit comments