class OSFError(Exception):
    """Base class for exceptions raised by the Osf application"""
    pass


class NodeError(OSFError):
    """Raised when an action cannot be performed on a Node model"""
    pass


class NodeStateError(NodeError):
    """Raised when the Node's state is not suitable for the requested action

    Example: Node.remove_node() is called, but the node has non-deleted children
    """
    pass

class SanctionTokenError(NodeError):
    """Base class for errors arising from the user of a sanction token."""
    pass

class InvalidSanctionRejectionToken(SanctionTokenError):
    """Raised if a embargo disapproval token is not found."""
    message_short = "Invalid Token"
    message_long = "This embargo disapproval link is invalid. Are you logged into the correct account?"

class InvalidSanctionApprovalToken(SanctionTokenError):
    """Raised if a embargo disapproval token is not found."""
    message_short = "Invalid Token"
    message_long = "This embargo disapproval link is invalid. Are you logged into the correct account?"

class OSFError(Exception):
    """Base class for exceptions raised by the Osf application"""
    pass


class NodeError(OSFError):
    """Raised when an action cannot be performed on a Node model"""
    pass


class NodeStateError(NodeError):
    """Raised when the Node's state is not suitable for the requested action

    Example: Node.remove_node() is called, but the node has non-deleted children
    """
    pass

class SanctionTokenError(NodeError):
    """Base class for errors arising from the user of a sanction token."""
    pass

class InvalidSanctionRejectionToken(SanctionTokenError):
    """Raised if a Sanction subclass disapproval token submitted is invalid
     or associated with another admin authorizer
    """
    message_short = "Invalid Token"
    message_long = "This disapproval link is invalid. Are you logged into the correct account?"

class InvalidSanctionApprovalToken(SanctionTokenError):
    """Raised if a Sanction subclass approval token submitted is invalid
     or associated with another admin authorizer
    """
    message_short = "Invalid Token"
    message_long = "This disapproval link is invalid. Are you logged into the correct account?"

Update Sanction exception error message and docstrings
Update Sanction exception error message and docstrings

  class OSFError(Exception):
      """Base class for exceptions raised by the Osf application"""
      pass
  
  
  class NodeError(OSFError):
      """Raised when an action cannot be performed on a Node model"""
      pass
  
  
  class NodeStateError(NodeError):
      """Raised when the Node's state is not suitable for the requested action
  
      Example: Node.remove_node() is called, but the node has non-deleted children
      """
      pass
  
  class SanctionTokenError(NodeError):
      """Base class for errors arising from the user of a sanction token."""
      pass
  
  class InvalidSanctionRejectionToken(SanctionTokenError):
-     """Raised if a embargo disapproval token is not found."""
+     """Raised if a Sanction subclass disapproval token submitted is invalid
+      or associated with another admin authorizer
+     """
      message_short = "Invalid Token"
-     message_long = "This embargo disapproval link is invalid. Are you logged into the correct account?"
+     message_long = "This disapproval link is invalid. Are you logged into the correct account?"
  
  class InvalidSanctionApprovalToken(SanctionTokenError):
-     """Raised if a embargo disapproval token is not found."""
+     """Raised if a Sanction subclass approval token submitted is invalid
+      or associated with another admin authorizer
+     """
      message_short = "Invalid Token"
-     message_long = "This embargo disapproval link is invalid. Are you logged into the correct account?"
+     message_long = "This disapproval link is invalid. Are you logged into the correct account?"
  
Update Sanction exception error message and docstrings
## Code Before:
class OSFError(Exception):
    """Base class for exceptions raised by the Osf application"""
    pass


class NodeError(OSFError):
    """Raised when an action cannot be performed on a Node model"""
    pass


class NodeStateError(NodeError):
    """Raised when the Node's state is not suitable for the requested action

    Example: Node.remove_node() is called, but the node has non-deleted children
    """
    pass

class SanctionTokenError(NodeError):
    """Base class for errors arising from the user of a sanction token."""
    pass

class InvalidSanctionRejectionToken(SanctionTokenError):
    """Raised if a embargo disapproval token is not found."""
    message_short = "Invalid Token"
    message_long = "This embargo disapproval link is invalid. Are you logged into the correct account?"

class InvalidSanctionApprovalToken(SanctionTokenError):
    """Raised if a embargo disapproval token is not found."""
    message_short = "Invalid Token"
    message_long = "This embargo disapproval link is invalid. Are you logged into the correct account?"

## Instruction:
Update Sanction exception error message and docstrings
## Code After:
class OSFError(Exception):
    """Base class for exceptions raised by the Osf application"""
    pass


class NodeError(OSFError):
    """Raised when an action cannot be performed on a Node model"""
    pass


class NodeStateError(NodeError):
    """Raised when the Node's state is not suitable for the requested action

    Example: Node.remove_node() is called, but the node has non-deleted children
    """
    pass

class SanctionTokenError(NodeError):
    """Base class for errors arising from the user of a sanction token."""
    pass

class InvalidSanctionRejectionToken(SanctionTokenError):
    """Raised if a Sanction subclass disapproval token submitted is invalid
     or associated with another admin authorizer
    """
    message_short = "Invalid Token"
    message_long = "This disapproval link is invalid. Are you logged into the correct account?"

class InvalidSanctionApprovalToken(SanctionTokenError):
    """Raised if a Sanction subclass approval token submitted is invalid
     or associated with another admin authorizer
    """
    message_short = "Invalid Token"
    message_long = "This disapproval link is invalid. Are you logged into the correct account?"
