Create users if not found. (#1753)

* Create users if not found.

* Do not fail is user is a duplicate.

* Make endpoint faster.
This commit is contained in:
Bogdan
2016-12-05 20:03:40 -05:00
committed by GitHub
parent eb0655cf85
commit 69702e3a19
2 changed files with 81 additions and 20 deletions

View File

@@ -354,14 +354,17 @@ class RequestAccessTests(SupersetTestCase):
if update_role:
db.session.delete(update_role)
db.session.commit()
with self.assertRaises(AttributeError):
self.get_resp(
'/superset/update_role/',
data=json.dumps({
'usernames': ['gamma'],
'role_name': update_role_str,
})
)
data = json.dumps({
'users': [{
'username': 'gamma',
'first_name': 'Gamma',
'last_name': 'Gamma',
'email': 'gamma@superset.com',
}],
'role_name': update_role_str})
r = self.client.post('/superset/update_role/', data=data,
follow_redirects=True)
self.assertEquals(500, r.status_code)
def test_update_role(self):
update_role_str = 'update_me'
@@ -370,7 +373,12 @@ class RequestAccessTests(SupersetTestCase):
resp = self.client.post(
'/superset/update_role/',
data=json.dumps({
'usernames': ['gamma'],
'users': [{
'username': 'gamma',
'first_name': 'Gamma',
'last_name': 'Gamma',
'email': 'gamma@superset.com'
}],
'role_name': update_role_str
}),
follow_redirects=True
@@ -383,7 +391,17 @@ class RequestAccessTests(SupersetTestCase):
resp = self.client.post(
'/superset/update_role/',
data=json.dumps({
'usernames': ['alpha', 'unknown'],
'users': [{
'username': 'alpha',
'first_name': 'Alpha',
'last_name': 'Alpha',
'email': 'alpha@superset.com'
}, {
'username': 'unknown',
'first_name': 'Unknown1',
'last_name': 'Unknown2',
'email': 'unknown@superset.com'
}],
'role_name': update_role_str
}),
follow_redirects=True
@@ -391,9 +409,16 @@ class RequestAccessTests(SupersetTestCase):
self.assertEquals(resp.status_code, 201)
update_role = sm.find_role(update_role_str)
self.assertEquals(
update_role.user, [sm.find_user(username='alpha')])
update_role.user, [
sm.find_user(username='alpha'),
sm.find_user(username='unknown'),
])
unknown = sm.find_user(username='unknown')
self.assertEquals('Unknown2', unknown.last_name)
self.assertEquals('Unknown1', unknown.first_name)
self.assertEquals('unknown@superset.com', unknown.email)
db.session.delete(update_role)
db.session.delete(unknown)
db.session.commit()