              if self.method.lower() in self.http_method_names:
                  handler = getattr(self, self.method.lower(), self.http_method_not_allowed)
              else:
                  handler = self.http_method_not_allowed
  
              response_obj = handler(request, *args, **kwargs)
  
              # Allow return value to be either Response, or an object, or None
 
</s> remove         return [method.upper() for method in self.http_method_names if hasattr(self, method)]
 </s> add         return [method.upper() for method in self.http_method_names if getattr(self, method, None)] </s> remove     permissions = ( permissions.DeleteMePermission, )
 </s> add     permissions = () </s> remove     put = delete = http_method_not_allowed
 </s> add     put = delete = None </s> remove     post = put = delete = http_method_not_allowed </s> add  </s> remove     
 </s> add #class DigestAuthentication(BaseAuthentication):
#    pass
#
#class OAuthAuthentication(BaseAuthentication):
#    pass
                # If a previously defined method has been disabled
                if handler is None:
                    handler = self.http_method_not_allowed
              if self.method.lower() in self.http_method_names:
                  handler = getattr(self, self.method.lower(), self.http_method_not_allowed)
                # If a previously defined method has been disabled
                if handler is None:
                    handler = self.http_method_not_allowed
              else:
                  handler = self.http_method_not_allowed
  
              response_obj = handler(request, *args, **kwargs)
  
              # Allow return value to be either Response, or an object, or None
keep add keep keep keep keep keep keep
 Fix up tests and examples after refactoring 
djangorestframework/resource.py