1+ import os
2+ import shutil
3+ import unittest
4+
15from aiohttp .web import HTTPBadRequest , HTTPNotFound
26from asynctest import TestCase as AsyncTestCase
37from asynctest import mock as async_mock
@@ -881,6 +885,34 @@ async def test_set_rev_reg_state_not_found(self):
881885 result = await test_module .set_rev_reg_state (self .request )
882886 mock_json_response .assert_not_called ()
883887
888+ # async def test_delete_tail(self):
889+ # CRED_DEF_ID = f"{self.test_did}:3:CL:1234:default"
890+ # REV_REG_ID = "{}:4:{}:3:CL:1234:default:CL_ACCUM:default".format(
891+ # self.test_did, self.test_did
892+ # )
893+ # self.request.query = {"cred_def_id": CRED_DEF_ID,
894+ # "rev_reg_id": REV_REG_ID}
895+ # self.request.json = async_mock.CoroutineMock(
896+ # return_value={
897+ # "message": "All files deleted successfully"
898+ # }
899+ # )
900+ #
901+ # with async_mock.patch.object(
902+ # test_module, "IndyRevocation", autospec=True
903+ # ) as mock_indy_revoc, async_mock.patch.object(
904+ # test_module.web, "json_response", async_mock.Mock()
905+ # ) as mock_json_response:
906+ # mock_indy_revoc.return_value = async_mock.MagicMock(
907+ # get_issuer_rev_reg_record=async_mock.CoroutineMock(
908+ # tails_local_path=f"/tmp/tails/{REV_REG_ID}",
909+ # return_value={"dummy": "dummy"})
910+ # )
911+ #
912+ # result = await test_module.delete_tails(self.request)
913+ # mock_json_response.assert_called_once_with({"message": "All files deleted successfully"})
914+ # assert result is mock_json_response.return_value
915+
884916 async def test_register (self ):
885917 mock_app = async_mock .MagicMock ()
886918 mock_app .add_routes = async_mock .MagicMock ()
@@ -906,3 +938,55 @@ async def test_post_process_routes(self):
906938 ]["get" ]["responses" ]["200" ]["schema" ] == {"type" : "string" , "format" : "binary" }
907939
908940 assert "tags" in mock_app ._state ["swagger_dict" ]
941+
942+ class TestDeleteTails (unittest .TestCase ):
943+ def setUp (self ):
944+ self .rev_reg_id = "rev_reg_id_123"
945+ self .cred_def_id = "cred_def_id_456"
946+
947+ self .main_dir_rev = "path/to/main/dir/rev"
948+ self .tails_path = os .path .join (self .main_dir_rev , "tails.txt" )
949+ os .makedirs (self .main_dir_rev )
950+ open (self .tails_path , "w" ).close ()
951+
952+ async def test_delete_tails_by_rev_reg_id (self ):
953+ # Setup
954+ rev_reg_id = self .rev_reg_id
955+
956+ # Test
957+ result = await test_module .delete_tails ({"context" : None , "query" : {"rev_reg_id" : rev_reg_id }})
958+
959+ # Assert
960+ self .assertEqual (result , {"message" : "All files deleted successfully" })
961+ self .assertFalse (os .path .exists (self .main_dir_rev ))
962+
963+ async def test_delete_tails_by_cred_def_id (self ):
964+ # Setup
965+ cred_def_id = self .cred_def_id
966+ main_dir_cred = "path/to/main/dir/cred"
967+ os .makedirs (main_dir_cred )
968+ cred_dir = os .path .join (main_dir_cred , cred_def_id )
969+ os .makedirs (cred_dir )
970+
971+ # Test
972+ result = await test_module .delete_tails ({"context" : None , "query" : {"cred_def_id" : cred_def_id }})
973+
974+ # Assert
975+ self .assertEqual (result , {"message" : "All files deleted successfully" })
976+ self .assertFalse (os .path .exists (cred_dir ))
977+ self .assertTrue (os .path .exists (main_dir_cred ))
978+
979+ async def test_delete_tails_not_found (self ):
980+ # Setup
981+ cred_def_id = "invalid_cred_def_id"
982+
983+ # Test
984+ result = await test_module .delete_tails ({"context" : None , "query" : {"cred_def_id" : cred_def_id }})
985+
986+ # Assert
987+ self .assertEqual (result , {"message" : "No such file or directory" })
988+ self .assertTrue (os .path .exists (self .main_dir_rev ))
989+
990+ async def tearDown (self ):
991+ if os .path .exists (self .main_dir_rev ):
992+ shutil .rmtree (self .main_dir_rev )
0 commit comments