def test_empty_fields(self): """CSV files where some fields are empty""" curr_path = os.path.dirname(__file__) for filename in self.CSV_EMPTY_FIELDS: # Delete existing users and groups get_user_model().objects.all().delete() Group.objects.all().delete() path = os.path.join(curr_path, self.FILE_FOLDER, filename) with self.assertRaises(AssertionError): create_users_from_csv(path, f"Test-{filename}")
def test_valid_csv(self): """Valid CSV file with 3 users""" # Delete existing users and groups Group.objects.all().delete() get_user_model().objects.all().delete() group_name = 'Clase ABC curso X/Y' curr_path = os.path.dirname(__file__) path = os.path.join(curr_path, self.FILE_FOLDER, self.CSV_OK_TEST) # Invoking with dry=True does not create users or groups old_groups = list(Group.objects.all()) old_users = list(get_user_model().objects.all()) create_users_from_csv(path, group_name, dry=True) new_groups = list(Group.objects.all()) new_users = list(get_user_model().objects.all()) self.assertEqual(old_groups, new_groups) self.assertEqual(old_users, new_users) # Invoking with dry=False does create a group with the expected users create_users_from_csv(path, group_name, dry=False) # The new group has 3 members new_group = Group.objects.filter(name=group_name)[0] self.assertEqual(len(new_group.user_set.all()), 3) juan = get_user_model().objects.get(username='******') self.assertTrue(juan.check_password('11111111X')) self.assertFalse(juan.check_password('11113111X')) self.assertEqual(juan.first_name, 'Juan') self.assertEqual(juan.last_name, '_') self.assertEqual(len(juan.groups.all()), 1) self.assertEqual(juan.groups.all()[0], new_group) eva = get_user_model().objects.get(username='******') self.assertTrue(eva.check_password('22222222X')) self.assertFalse(eva.check_password('11113111X')) self.assertEqual(eva.first_name, 'EVA MARIA') self.assertEqual(eva.last_name, 'MARTIN KEPLER') self.assertEqual(len(eva.groups.all()), 1) self.assertEqual(eva.groups.all()[0], new_group) froilan = get_user_model().objects.get(username='******') self.assertTrue(froilan.check_password('33333333X')) self.assertFalse(froilan.check_password('11113111X')) self.assertEqual(froilan.first_name, 'JUAN FROILAN DE TODOS LOS SANTOS DE JESÚS') self.assertEqual(froilan.last_name, 'KUPU KUPI') self.assertEqual(len(froilan.groups.all()), 1) self.assertEqual(froilan.groups.all()[0], new_group)