|
| 1 | +from django.conf import settings |
1 | 2 | from django.test import Client, RequestFactory, TestCase
|
2 |
| -from blog.models import Article, Category, Tag |
3 |
| -from django.contrib.auth import get_user_model |
4 |
| -from DjangoBlog.utils import delete_view_cache, delete_sidebar_cache |
5 |
| -from accounts.models import BlogUser |
6 | 3 | from django.urls import reverse
|
7 |
| -from DjangoBlog.utils import * |
8 |
| -from django.conf import settings |
9 | 4 | from django.utils import timezone
|
10 | 5 |
|
| 6 | +from DjangoBlog.utils import * |
| 7 | +from accounts.models import BlogUser |
| 8 | +from blog.models import Article, Category |
| 9 | +from . import utils |
| 10 | + |
11 | 11 |
|
12 | 12 | # Create your tests here.
|
13 | 13 |
|
14 | 14 | class AccountTest(TestCase):
|
15 | 15 | def setUp(self):
|
16 | 16 | self.client = Client()
|
17 | 17 | self.factory = RequestFactory()
|
| 18 | + self.blog_user = BlogUser.objects.create_user( |
| 19 | + username="test", |
| 20 | + |
| 21 | + password="12345678" |
| 22 | + ) |
| 23 | + self.new_test = "xxx123--=" |
18 | 24 |
|
19 | 25 | def test_validate_account(self):
|
20 | 26 | site = get_current_site().domain
|
@@ -111,3 +117,101 @@ def test_validate_register(self):
|
111 | 117 |
|
112 | 118 | response = self.client.get(article.get_admin_url())
|
113 | 119 | self.assertIn(response.status_code, [301, 302, 200])
|
| 120 | + |
| 121 | + def test_verify_email_code(self): |
| 122 | + |
| 123 | + code = generate_code() |
| 124 | + utils.set_code(to_email, code) |
| 125 | + utils.send_verify_email(to_email, code) |
| 126 | + |
| 127 | + err = utils. verify( "[email protected]", code) |
| 128 | + self.assertEqual(err, None) |
| 129 | + |
| 130 | + err = utils. verify( "[email protected]", code) |
| 131 | + self.assertEqual(type(err), str) |
| 132 | + |
| 133 | + def test_forget_password_email_code_success(self): |
| 134 | + resp = self.client.post( |
| 135 | + path=reverse("account:forget_password_code"), |
| 136 | + data=dict( email="[email protected]") |
| 137 | + ) |
| 138 | + |
| 139 | + self.assertEqual(resp.status_code, 200) |
| 140 | + self.assertEqual(resp.content.decode("utf-8"), "ok") |
| 141 | + |
| 142 | + def test_forget_password_email_code_fail(self): |
| 143 | + resp = self.client.post( |
| 144 | + path=reverse("account:forget_password_code"), |
| 145 | + data=dict() |
| 146 | + ) |
| 147 | + self.assertEqual(resp.content.decode("utf-8"), "错误的邮箱") |
| 148 | + |
| 149 | + resp = self.client.post( |
| 150 | + path=reverse("account:forget_password_code"), |
| 151 | + data=dict(email="admin@com") |
| 152 | + ) |
| 153 | + self.assertEqual(resp.content.decode("utf-8"), "错误的邮箱") |
| 154 | + |
| 155 | + def test_forget_password_email_success(self): |
| 156 | + code = generate_code() |
| 157 | + utils.set_code(self.blog_user.email, code) |
| 158 | + data = dict( |
| 159 | + new_password1=self.new_test, |
| 160 | + new_password2=self.new_test, |
| 161 | + email=self.blog_user.email, |
| 162 | + code=code, |
| 163 | + ) |
| 164 | + resp = self.client.post( |
| 165 | + path=reverse("account:forget_password"), |
| 166 | + data=data |
| 167 | + ) |
| 168 | + self.assertEqual(resp.status_code, 302) |
| 169 | + |
| 170 | + # 验证用户密码是否修改成功 |
| 171 | + blog_user = BlogUser.objects.filter( |
| 172 | + email=self.blog_user.email, |
| 173 | + ).first() # type: BlogUser |
| 174 | + self.assertNotEqual(blog_user, None) |
| 175 | + self.assertEqual(blog_user.check_password(data["new_password1"]), True) |
| 176 | + |
| 177 | + def test_forget_password_email_not_user(self): |
| 178 | + data = dict( |
| 179 | + new_password1=self.new_test, |
| 180 | + new_password2=self.new_test, |
| 181 | + |
| 182 | + code="123456", |
| 183 | + ) |
| 184 | + resp = self.client.post( |
| 185 | + path=reverse("account:forget_password"), |
| 186 | + data=data |
| 187 | + ) |
| 188 | + |
| 189 | + self.assertEqual(resp.status_code, 200) |
| 190 | + self.assertFormError( |
| 191 | + response=resp, |
| 192 | + form="form", |
| 193 | + field="email", |
| 194 | + errors="未找到邮箱对应的用户" |
| 195 | + ) |
| 196 | + |
| 197 | + def test_forget_password_email_code_error(self): |
| 198 | + code = generate_code() |
| 199 | + utils.set_code(self.blog_user.email, code) |
| 200 | + data = dict( |
| 201 | + new_password1=self.new_test, |
| 202 | + new_password2=self.new_test, |
| 203 | + email=self.blog_user.email, |
| 204 | + code="111111", |
| 205 | + ) |
| 206 | + resp = self.client.post( |
| 207 | + path=reverse("account:forget_password"), |
| 208 | + data=data |
| 209 | + ) |
| 210 | + |
| 211 | + self.assertEqual(resp.status_code, 200) |
| 212 | + self.assertFormError( |
| 213 | + response=resp, |
| 214 | + form="form", |
| 215 | + field="code", |
| 216 | + errors="验证码错误" |
| 217 | + ) |
0 commit comments