class_docstr: Negative test cases of alias interface operations
class_docstr_tok: ["Negative","test","cases","of","alias","interface","operations"]
docstr: target: test collection dropping same alias twice
  method: 
          1.create a collection with alias
          2.collection drop alias
          3.collection drop alias again
  expected: drop alias failed
docstr_tok: ["target",":","test","collection","dropping","same","alias","twice","method",":","1.create","a","collection","with","alias","2.collection","drop","alias","3.collection","drop","alias","again","expected",":","drop","alias","failed"]
code: def test_alias_drop_same_alias_twice(self):
      """
      target: test collection dropping same alias twice
      method:
              1.create a collection with alias
              2.collection drop alias
              3.collection drop alias again
      expected: drop alias failed
      """
      self._connect()
      c_name = cf.gen_unique_str("collection")
      collection_w = self.init_collection_wrap(
          name=c_name,
          schema=default_schema,
          check_task=CheckTasks.check_collection_property,
          check_items={exp_name: c_name, exp_schema: default_schema},
      )
      alias_name = cf.gen_unique_str(prefix)
      self.utility_wrap.create_alias(collection_w.name, alias_name)
      self.utility_wrap.drop_alias(alias_name)
      # collection_w.create_alias(alias_name)
      # collection_w.drop_alias(alias_name)
  
      # @longjiquan: dropping alias should be idempotent.
      self.utility_wrap.drop_alias(alias_name)
  
imports: import pytest
  import random
  from base.client_base import TestcaseBase
  from utils.util_log import test_log
  from common import common_func
  from common import common_type
  from common.common_type import CaseLabel, CheckTasks
label_desc: Use image node_id 4 for calling the TestAliasOperationInvalid obj's underlying member method code with example usage: obj.test_alias_drop_same_alias_twice() without return types