Skip to content

Commit a956e1f

Browse files
committed
Python: Use django View instead of MethodView
Due to the 'only model most specific spec' logic highlighted in previous commit, I'm changing away from MethodView/View, and use Django view instead. In practice this shouldn't matter at all, but for writing tests it would have been a nice fix to only have the "same name but more specific" logic apply when it's the same _definition_ location. We used to have this information available, but right now we don't... so instead of spending a lot of time rewriting the core library, I simply used a different class :D :O :(
1 parent 03aa2e2 commit a956e1f

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1+
| Django.Views.View~Subclass | find_subclass_test | Member[View] |
2+
| Django.Views.View~Subclass | find_subclass_test | Member[clash] |
13
| flask.MethodView~Subclass | find_subclass_test | Member[C] |
2-
| flask.MethodView~Subclass | find_subclass_test | Member[MethodView] |
3-
| flask.MethodView~Subclass | find_subclass_test | Member[clash] |
44
| flask.View~Subclass | find_subclass_test | Member[A] |
55
| flask.View~Subclass | find_subclass_test | Member[B] |
66
| flask.View~Subclass | find_subclass_test | Member[ViewAliasInExcept] |
77
| flask.View~Subclass | find_subclass_test | Member[ViewAliasInTry] |
88
| flask.View~Subclass | find_subclass_test | Member[ViewAlias] |
99
| flask.View~Subclass | find_subclass_test | Member[View] |
1010
| flask.View~Subclass | find_subclass_test | Member[clash3] |
11+
| flask.View~Subclass | find_subclass_test | Member[clash] |
1112
| flask.View~Subclass | find_subclass_test | Member[complete_module_alias] |

python/ql/test/experimental/library-tests/FindSubclass/find_subclass_test.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,20 @@ class C(flask.views.MethodView):
1919

2020

2121
if cond:
22-
from flask.views import View as clash # $ MISSING
22+
from flask.views import View as clash
2323
else:
24-
from flask.views import MethodView as clash # $ SPURIOUS: MethodView
24+
from django.views.generic import View as clash # $ SPURIOUS: View=Django.Views.View~Subclass
2525

2626
if cond:
2727
from flask.views import View as clash2 # $ MISSING
2828
else:
29-
from flask.views import MethodView as clash2 # $ MISSING
29+
from django.views.generic import View as clash2 # $ MISSING
3030
print(clash2)
3131

3232
if cond:
3333
from flask.views import View as clash3
3434
else:
35-
from flask.views import MethodView as clash3 # $ MISSING
35+
from django.views.generic import View as clash3 # $ MISSING
3636
print(clash3)
3737

3838
import flask.views as containing_module_alias # $ MISSING

0 commit comments

Comments
 (0)