import ast
import builtins

from .operator import Operator


class OutOfNoWhereException(Exception):
    pass

setattr(builtins, OutOfNoWhereException.__name__, OutOfNoWhereException)


class ExceptionReplacer(Operator):

    """An operator that modifies exception handlers."""

    def visit_ExceptHandler(self, node):  # noqa
        return self.visit_mutation_site(node)

    def mutate(self, node, _):
        """Modify the exception handler with another exception type."""
        except_id = OutOfNoWhereException.__name__
        except_type = ast.Name(id=except_id, ctx=ast.Load())
        new_node = ast.ExceptHandler(type=except_type, name=node.name,
                                     body=node.body)
        return new_node

import ast
import builtins

from .operator import Operator


class CosmicRayTestingException(Exception):
    pass

setattr(builtins, CosmicRayTestingException.__name__, CosmicRayTestingException)


class ExceptionReplacer(Operator):

    """An operator that modifies exception handlers."""

    def visit_ExceptHandler(self, node):  # noqa
        return self.visit_mutation_site(node)

    def mutate(self, node, _):
        """Modify the exception handler with another exception type."""
        except_id = CosmicRayTestingException.__name__
        except_type = ast.Name(id=except_id, ctx=ast.Load())
        new_node = ast.ExceptHandler(type=except_type, name=node.name,
                                     body=node.body)
        return new_node

Change exception name to CosmicRayTestingException
Change exception name to CosmicRayTestingException

  import ast
  import builtins
  
  from .operator import Operator
  
  
- class OutOfNoWhereException(Exception):
+ class CosmicRayTestingException(Exception):
      pass
  
- setattr(builtins, OutOfNoWhereException.__name__, OutOfNoWhereException)
+ setattr(builtins, CosmicRayTestingException.__name__, CosmicRayTestingException)
  
  
  class ExceptionReplacer(Operator):
  
      """An operator that modifies exception handlers."""
  
      def visit_ExceptHandler(self, node):  # noqa
          return self.visit_mutation_site(node)
  
      def mutate(self, node, _):
          """Modify the exception handler with another exception type."""
-         except_id = OutOfNoWhereException.__name__
+         except_id = CosmicRayTestingException.__name__
          except_type = ast.Name(id=except_id, ctx=ast.Load())
          new_node = ast.ExceptHandler(type=except_type, name=node.name,
                                       body=node.body)
          return new_node
  
Change exception name to CosmicRayTestingException
## Code Before:
import ast
import builtins

from .operator import Operator


class OutOfNoWhereException(Exception):
    pass

setattr(builtins, OutOfNoWhereException.__name__, OutOfNoWhereException)


class ExceptionReplacer(Operator):

    """An operator that modifies exception handlers."""

    def visit_ExceptHandler(self, node):  # noqa
        return self.visit_mutation_site(node)

    def mutate(self, node, _):
        """Modify the exception handler with another exception type."""
        except_id = OutOfNoWhereException.__name__
        except_type = ast.Name(id=except_id, ctx=ast.Load())
        new_node = ast.ExceptHandler(type=except_type, name=node.name,
                                     body=node.body)
        return new_node

## Instruction:
Change exception name to CosmicRayTestingException
## Code After:
import ast
import builtins

from .operator import Operator


class CosmicRayTestingException(Exception):
    pass

setattr(builtins, CosmicRayTestingException.__name__, CosmicRayTestingException)


class ExceptionReplacer(Operator):

    """An operator that modifies exception handlers."""

    def visit_ExceptHandler(self, node):  # noqa
        return self.visit_mutation_site(node)

    def mutate(self, node, _):
        """Modify the exception handler with another exception type."""
        except_id = CosmicRayTestingException.__name__
        except_type = ast.Name(id=except_id, ctx=ast.Load())
        new_node = ast.ExceptHandler(type=except_type, name=node.name,
                                     body=node.body)
        return new_node
