Skip to content

MethodView methods not inherited #3138

@aparamon

Description

@aparamon

To reproduce:

import flask
import flask.views

class BaseView(flask.views.MethodView):
    methods = ['GET', 'PROPFIND']

class MyView(BaseView):
    def get(self):
        return None, 200
    def propfind(self):
        return None, 200

app = flask.Flask(__name__)
app.add_url_rule('/test', view_func=MyView.as_view('test'))

for rule in app.url_map.iter_rules():
    print(rule, ','.join(rule.methods))

Expected Behavior

/test OPTIONS,PROPFIND,GET,HEAD
/static/<path:filename> OPTIONS,GET,HEAD

Actual Behavior

/test OPTIONS,GET,HEAD
/static/<path:filename> OPTIONS,GET,HEAD

Environment

  • Python version: 3.7.1
  • Flask version: Python 3.7.1 (default, Dec 10 2018, 22:54:23) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32
  • Werkzeug version: 0.15.2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions