use bulk_create and transcation for importing user

This commit is contained in:
virusdefender
2017-11-24 22:26:56 +08:00
parent a1eed315b4
commit 7cc33d0701
2 changed files with 32 additions and 23 deletions

View File

@@ -557,20 +557,25 @@ class AdminUserTest(APITestCase):
def test_import_users(self):
data = {"users": [["user1", "pass1", "eami1@e.com"],
["user1", "pass1", "eami1@e.com"],
["user2", "pass2"], ["user3", "pass3", "eamil3@e.com"]]
["user2", "pass3", "eamil3@e.com"]]
}
resp = self.client.post(self.url, data)
self.assertSuccess(resp)
self.assertDictEqual(resp.data["data"], {"omitted_count": 1,
"created_count": 2,
"get_count": 1})
# successfully created 2 users
self.assertEqual(User.objects.all().count(), 4)
def test_import_duplicate_user(self):
data = {"users": [["user1", "pass1", "eami1@e.com"],
["user1", "pass1", "eami1@e.com"]]
}
resp = self.client.post(self.url, data)
self.assertFailed(resp, "DETAIL: Key (username)=(user1) already exists.")
# no user is created
self.assertEqual(User.objects.all().count(), 2)
def test_delete_users(self):
self.test_import_users()
user_ids = User.objects.filter(username__in=["user1", "user3"]).values_list("id", flat=True)
user_ids = User.objects.filter(username__in=["user1", "user2"]).values_list("id", flat=True)
user_ids = ",".join([str(id) for id in user_ids])
resp = self.client.delete(self.url + "?id=" + user_ids)
self.assertSuccess(resp)