1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-06-28 07:57:50 +00:00
seahub/tests/api/test_serializers.py
guopengda 30fbc77ede Add email (#2260)
Login using contact email
2018-08-10 11:37:09 +08:00

50 lines
1.9 KiB
Python

from mock import patch
from seahub.test_utils import BaseTestCase
from seahub.api2.serializers import AuthTokenSerializer
from seahub.profile.models import Profile
class AuthTokenSerializerTest(BaseTestCase):
def test_validate(self):
d = {
'username': self.user.username,
'password': self.user_password,
'platform': 'linux',
'device_id': '701143c1238e6736b61c20e73de82fc95989c413',
'device_name': 'test',
}
assert AuthTokenSerializer(
data=d, context={'request': self.fake_request}).is_valid() is True
Profile.objects.add_or_update(username=self.user.username, login_id='aaa')
d1 = d.copy()
d1.update({'username': 'aaa'})
assert AuthTokenSerializer(
data=d, context={'request': self.fake_request}).is_valid() is True
assert AuthTokenSerializer(
data=d1, context={'request': self.fake_request}).is_valid() is True
Profile.objects.add_or_update(username=self.user.username,
contact_email='a+1@a.com')
d1 = d.copy()
d1.update({'username': 'a+1@a.com'})
assert AuthTokenSerializer(
data=d, context={'request': self.fake_request}).is_valid() is True
assert AuthTokenSerializer(
data=d1, context={'request': self.fake_request}).is_valid() is True
@patch('seahub.api2.serializers.has_two_factor_auth')
def test_two_factor_auth(self, mock_has_two_factor_auth):
mock_has_two_factor_auth.return_value = True
s = AuthTokenSerializer(data={
'username': self.user.username,
'password': self.user_password,
'platform': 'linux',
'device_id': '701143c1238e6736b61c20e73de82fc95989c413',
'device_name': 'test',
}, context={'request': self.fake_request})
assert s.is_valid() is True