1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
|
import unittest
from unittest import mock
from ...authentication.database import Database
class TestDatabase(unittest.TestCase):
@mock.patch("auth0.rest.RestClient.post")
def test_signup(self, mock_post):
d = Database("my.domain.com", "cid")
# using only email and password
d.signup(email="a@b.com", password="pswd", connection="conn")
args, kwargs = mock_post.call_args
self.assertEqual(args[0], "https://my.domain.com/dbconnections/signup")
self.assertEqual(
kwargs["data"],
{
"client_id": "cid",
"email": "a@b.com",
"password": "pswd",
"connection": "conn",
},
)
# Using also optional properties
sample_meta = {"hobby": "surfing", "preference": {"color": "pink"}}
d.signup(
email="a@b.com",
password="pswd",
connection="conn",
username="usr",
user_metadata=sample_meta,
given_name="john",
family_name="doe",
name="john doe",
nickname="johnny",
picture="avatars.com/john-doe",
)
args, kwargs = mock_post.call_args
self.assertEqual(args[0], "https://my.domain.com/dbconnections/signup")
self.assertEqual(
kwargs["data"],
{
"client_id": "cid",
"email": "a@b.com",
"password": "pswd",
"connection": "conn",
"username": "usr",
"user_metadata": sample_meta,
"given_name": "john",
"family_name": "doe",
"name": "john doe",
"nickname": "johnny",
"picture": "avatars.com/john-doe",
},
)
@mock.patch("auth0.rest.RestClient.post")
def test_change_password(self, mock_post):
d = Database("my.domain.com", "cid")
# ignores the password argument
d.change_password(email="a@b.com", password="pswd", connection="conn")
args, kwargs = mock_post.call_args
self.assertEqual(args[0], "https://my.domain.com/dbconnections/change_password")
self.assertEqual(
kwargs["data"],
{
"client_id": "cid",
"email": "a@b.com",
"connection": "conn",
},
)
@mock.patch("auth0.rest.RestClient.post")
def test_change_password_with_organization_param(self, mock_post):
d = Database("my.domain.com", "cid")
# ignores the password argument
d.change_password(
email="a@b.com", password="pswd", connection="conn", organization="org_id"
)
args, kwargs = mock_post.call_args
self.assertEqual(args[0], "https://my.domain.com/dbconnections/change_password")
self.assertEqual(
kwargs["data"],
{
"client_id": "cid",
"email": "a@b.com",
"connection": "conn",
"organization": "org_id",
},
)
|