@@ -206,6 +206,33 @@ def _iter_(self, request):
206
206
class Describe_Bookmark (object ):
207
207
"""Unit-test suite for `docx.bookmark._Bookmark` object."""
208
208
209
+ def it_can_close_itself_when_open (self ):
210
+ bookmarkStart = element ("w:bookmarkStart{w:id=42}" )
211
+ bookmarkEnd = element ("w:bookmarkEnd{w:id=42}" )
212
+ bookmark = _Bookmark ((bookmarkStart , None ))
213
+
214
+ return_value = bookmark .close (bookmarkEnd )
215
+
216
+ assert bookmark ._bookmarkEnd == bookmarkEnd
217
+ assert return_value is bookmark
218
+
219
+ def but_it_raises_if_it_is_already_closed (self ):
220
+ bookmarkEnd = element ("w:bookmarkEnd" )
221
+ bookmark = _Bookmark ((None , bookmarkEnd ))
222
+
223
+ with pytest .raises (ValueError ) as e :
224
+ bookmark .close (bookmarkEnd )
225
+ assert "bookmark already closed" in str (e .value )
226
+
227
+ def and_it_raises_if_the_ids_dont_match (self ):
228
+ bookmarkStart = element ("w:bookmarkStart{w:id=42}" )
229
+ bookmarkEnd = element ("w:bookmarkEnd{w:id=24}" )
230
+ bookmark = _Bookmark ((bookmarkStart , None ))
231
+
232
+ with pytest .raises (ValueError ) as e :
233
+ bookmark .close (bookmarkEnd )
234
+ assert "end id does not match start id" in str (e .value )
235
+
209
236
def it_knows_its_id (self ):
210
237
bookmarkStart = element ("w:bookmarkStart{w:id=42}" )
211
238
bookmarkEnd = element ("w:bookmarkEnd" )
0 commit comments