質問編集履歴
5
typo
test
CHANGED
File without changes
|
test
CHANGED
@@ -107,7 +107,7 @@
|
|
107
107
|
```
|
108
108
|
|
109
109
|
|
110
|
-
## 環境
|
110
|
+
## 環境(ローカルでテスト中)
|
111
111
|
- Django 3.2
|
112
112
|
- Python 3.9
|
113
113
|
- MacOS Big Sur 11.6.2
|
4
typo
test
CHANGED
File without changes
|
test
CHANGED
@@ -13,7 +13,7 @@
|
|
13
13
|
|
14
14
|
まとめると現状では下表のようにしているのですが、なにかもっと良い方法がありましたらお教えいただけますと助かります。
|
15
15
|
|
16
|
-
|到達先|assert
|
16
|
+
|到達先|assert|判定結果|
|
17
17
|
|---|---|---|
|
18
18
|
|クラスベースViewのメソッド|`self.assertEqual(view.func.view_class, DrillTopView)`|OK|
|
19
19
|
|関数(最初の実装)|`self.assertEqual(view.func, ajax_respond)`|FAILED|
|
3
フォーマット修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -91,9 +91,9 @@
|
|
91
91
|
```python
|
92
92
|
from django.urls import path
|
93
93
|
from django.contrib.auth.decorators import login_required
|
94
|
-
from .views import (ajax_respond,
|
94
|
+
from .views import (ajax_respond, # snip
|
95
|
-
|
95
|
+
HomeView, # snip
|
96
|
-
|
96
|
+
)
|
97
97
|
|
98
98
|
app_name = 'main'
|
99
99
|
|
2
urls.py追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
ログイン機能が付いたサービスを Django で初めて
|
1
|
+
ログイン機能が付いたサービスを Django で初めて作っています。
|
2
2
|
|
3
3
|
今、`urls.py`に書いたそれぞれの path が `login_requred`つきのメソッド or 関数に到達するかどうかのテストを書いているのですが、ログイン状態ではどう判定すればいいのか迷っています。
|
4
4
|
|
@@ -8,6 +8,7 @@
|
|
8
8
|
self.assertEqual(view.func, ajax_respond)
|
9
9
|
AssertionError: <function ajax_respond at 0x10b3351f0> != <function ajax_respond at 0x10af44280>
|
10
10
|
```
|
11
|
+
|
11
12
|
到達先の関数をlogin_required()でラップしただけなのに、なぜその関数の配置が変わるのが理解できないのですが、しかたないので、関数の判定に関しては関数オブジェクトではなく、関数名で判定するようにしてみました。
|
12
13
|
|
13
14
|
まとめると現状では下表のようにしているのですが、なにかもっと良い方法がありましたらお教えいただけますと助かります。
|
@@ -20,7 +21,7 @@
|
|
20
21
|
|
21
22
|
よろしくお願いいたします。
|
22
23
|
|
23
|
-
テスト結果
|
24
|
+
## テスト結果
|
24
25
|
```
|
25
26
|
(venv)$ ./manage.py test
|
26
27
|
|
@@ -45,7 +46,7 @@
|
|
45
46
|
Destroying test database for alias 'default'...
|
46
47
|
```
|
47
48
|
|
48
|
-
main/test_urls.py
|
49
|
+
## main/test_urls.py (抜粋)
|
49
50
|
```Python
|
50
51
|
from django.test import TestCase, Client
|
51
52
|
from django.urls import reverse, resolve
|
@@ -86,7 +87,27 @@
|
|
86
87
|
# => AssertionError: <function ajax_respond at 0x10b3351f0> != <function ajax_respond at 0x10af44280>
|
87
88
|
```
|
88
89
|
|
90
|
+
## main/urls.py (抜粋)
|
91
|
+
```python
|
92
|
+
from django.urls import path
|
93
|
+
from django.contrib.auth.decorators import login_required
|
94
|
+
from .views import (ajax_respond, ajax_respond_new, ajax_get_drill_article,
|
95
|
+
DrillTopView, DrillListRecommendView, DrillListView,
|
96
|
+
DrillStartView, DrillPlayView, DrillEditView)
|
97
|
+
|
98
|
+
app_name = 'main'
|
99
|
+
|
100
|
+
urlpatterns = [
|
101
|
+
# path('test/', test, name='test'),
|
102
|
+
path('home/', HomeView.as_view(), name='home'),
|
103
|
+
# snip
|
104
|
+
path('<int:pk>/ajax/', login_required(ajax_respond), name='ajax'),
|
105
|
+
# snip
|
106
|
+
]
|
107
|
+
```
|
108
|
+
|
109
|
+
|
89
|
-
# 環境
|
110
|
+
## 環境
|
90
111
|
- Django 3.2
|
91
112
|
- Python 3.9
|
92
113
|
- MacOS Big Sur 11.6.2
|
1
フォーマット修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -42,7 +42,8 @@
|
|
42
42
|
Ran 6 tests in 2.307s
|
43
43
|
|
44
44
|
FAILED (failures=1)
|
45
|
-
Destroying test database for alias 'default'...
|
45
|
+
Destroying test database for alias 'default'...
|
46
|
+
```
|
46
47
|
|
47
48
|
main/test_urls.py
|
48
49
|
```Python
|