def test_update_user(orig_share_amt, share_add_amt, share_del_amt, update_name): if share_del_amt > orig_share_amt: return serializer = UserSerializer() user = random_users(1)[0] orig_shares = random_shares(orig_share_amt) orig_time = user.updated_at for share in orig_shares: share.users.add(user) validated_data = {'name': user.name + random_str(2)} if update_name else {} if share_add_amt + share_del_amt > 0: added = random_shares(share_add_amt) new_shares = orig_shares[:-share_del_amt] + added deleted = orig_shares[-share_del_amt:] validated_data['shares'] = new_shares else: deleted = [] new_shares = list(orig_shares) serializer.update(user, validated_data) assert_update_time(orig_time, user) assert user.name == validated_data.get('name', user.name) user_shares = user.shares assert user_shares.count() == len(new_shares) assert set(user_shares) == set(new_shares) for deleted_share in deleted: assert deleted_share not in user_shares
class UserSerializerTest(SerializerTest): def setUp(self): self.serializer = UserSerializer() def test_user_creation(self): user = self.serializer.create(self.USER_DATA) auth_role = AuthRole.get_auth_role(user.pk) self.assertIsInstance(user, User) self.assertEqual(auth_role, AuthRole.RoleTypes.USER, msg='Auth role is user') self.assertEqual(user.first_name, self.USER_DATA.get('first_name')) self.assertEqual(user.last_name, self.USER_DATA.get('last_name')) self.assertEqual(user.email, self.USER_DATA.get('email')) self.assertEqual(user.username, self.USER_DATA.get('username')) self.assertEqual(user.check_password(self.USER_DATA.get('password')), True) def test_user_update(self): manager = self.create_manager() manager = self.serializer.update(manager, self.TEST_DATA) # type: User manager_role = AuthRole.get_auth_role(manager.pk) self.assertIsInstance(manager, User) self.assertEqual(manager_role, AuthRole.RoleTypes.MANAGER, msg='Auth role is manager') self.assertEqual(manager.first_name, self.TEST_DATA.get('first_name')) self.assertEqual(manager.last_name, self.TEST_DATA.get('last_name')) self.assertEqual(manager.email, self.TEST_DATA.get('email')) self.assertEqual(manager.username, self.TEST_DATA.get('username')) self.assertEqual( manager.check_password(self.TEST_DATA.get('password')), True)