@@ -645,6 +645,88 @@ def test_delete_chunk_not_found(elasticsearch_core_instance):
645645 assert result is False
646646
647647
648+ def test_create_chunk_exception (elasticsearch_core_instance ):
649+ """Test create_chunk raises exception when client.index fails."""
650+ elasticsearch_core_instance .client = MagicMock ()
651+ elasticsearch_core_instance .client .index .side_effect = Exception ("Index operation failed" )
652+
653+ payload = {"id" : "chunk-1" , "content" : "A" }
654+
655+ with pytest .raises (Exception ) as exc_info :
656+ elasticsearch_core_instance .create_chunk ("kb-index" , payload )
657+
658+ assert "Index operation failed" in str (exc_info .value )
659+ elasticsearch_core_instance .client .index .assert_called_once ()
660+
661+
662+ def test_update_chunk_exception_from_resolve (elasticsearch_core_instance ):
663+ """Test update_chunk raises exception when _resolve_chunk_document_id fails."""
664+ elasticsearch_core_instance .client = MagicMock ()
665+ with patch .object (
666+ elasticsearch_core_instance ,
667+ "_resolve_chunk_document_id" ,
668+ side_effect = Exception ("Resolve failed" ),
669+ ):
670+ updates = {"content" : "updated" }
671+
672+ with pytest .raises (Exception ) as exc_info :
673+ elasticsearch_core_instance .update_chunk ("kb-index" , "chunk-1" , updates )
674+
675+ assert "Resolve failed" in str (exc_info .value )
676+ elasticsearch_core_instance .client .update .assert_not_called ()
677+
678+
679+ def test_update_chunk_exception_from_update (elasticsearch_core_instance ):
680+ """Test update_chunk raises exception when client.update fails."""
681+ elasticsearch_core_instance .client = MagicMock ()
682+ with patch .object (
683+ elasticsearch_core_instance ,
684+ "_resolve_chunk_document_id" ,
685+ return_value = "es-id-1" ,
686+ ):
687+ elasticsearch_core_instance .client .update .side_effect = Exception ("Update operation failed" )
688+
689+ updates = {"content" : "updated" }
690+
691+ with pytest .raises (Exception ) as exc_info :
692+ elasticsearch_core_instance .update_chunk ("kb-index" , "chunk-1" , updates )
693+
694+ assert "Update operation failed" in str (exc_info .value )
695+ elasticsearch_core_instance .client .update .assert_called_once ()
696+
697+
698+ def test_delete_chunk_exception_from_resolve (elasticsearch_core_instance ):
699+ """Test delete_chunk raises exception when _resolve_chunk_document_id fails with non-NotFoundError."""
700+ elasticsearch_core_instance .client = MagicMock ()
701+ with patch .object (
702+ elasticsearch_core_instance ,
703+ "_resolve_chunk_document_id" ,
704+ side_effect = Exception ("Resolve failed" ),
705+ ):
706+ with pytest .raises (Exception ) as exc_info :
707+ elasticsearch_core_instance .delete_chunk ("kb-index" , "chunk-1" )
708+
709+ assert "Resolve failed" in str (exc_info .value )
710+ elasticsearch_core_instance .client .delete .assert_not_called ()
711+
712+
713+ def test_delete_chunk_exception_from_delete (elasticsearch_core_instance ):
714+ """Test delete_chunk raises exception when client.delete fails with non-NotFoundError."""
715+ elasticsearch_core_instance .client = MagicMock ()
716+ with patch .object (
717+ elasticsearch_core_instance ,
718+ "_resolve_chunk_document_id" ,
719+ return_value = "es-id-1" ,
720+ ):
721+ elasticsearch_core_instance .client .delete .side_effect = Exception ("Delete operation failed" )
722+
723+ with pytest .raises (Exception ) as exc_info :
724+ elasticsearch_core_instance .delete_chunk ("kb-index" , "chunk-1" )
725+
726+ assert "Delete operation failed" in str (exc_info .value )
727+ elasticsearch_core_instance .client .delete .assert_called_once ()
728+
729+
648730def test_resolve_chunk_document_id_direct_hit (elasticsearch_core_instance ):
649731 """Test _resolve_chunk_document_id returns given id when ES _id exists."""
650732 elasticsearch_core_instance .client = MagicMock ()
0 commit comments