def test_form_save(self): dummy_user = DummyUser().create_dummy_user(username='******') DummyUser().create_dummy_group(group_name='members') self.assertFalse(has_group(dummy_user, 'members')) # Створюємо форму з instance і data # (заповнюємо також required fields, бо super().save не зможе зберегти) data = { 'username': '******', 'has_perm_member': True, 'date_joined': now() } form = self.cls_form(instance=dummy_user, data=data) saved_user = form.save() # Чи збережено? self.assertEqual(saved_user, User.objects.last()) # Чи змінилось значення поля? self.assertTrue(has_group(dummy_user, 'members')) # Створюємо форму з user + додаткові data data = { 'username': '******', 'has_perm_member': False, 'date_joined': now() } form = self.cls_form(instance=dummy_user, data=data) saved_user = form.save() # Чи збережено? self.assertEqual(saved_user, User.objects.last()) # Чи змінилось значення поля? self.assertFalse(has_group(dummy_user, 'members'))
def test_init_and_get_is_member(self): form = self.cls_form() # empty form: self.assertFalse(form.is_member) self.assertFalse(form.fields['has_perm_member'].initial) dummy_user = DummyUser().create_dummy_user(username='******') # form with initial data initial_data = { 'username': '******', } form = self.cls_form(data=initial_data) self.assertFalse(form.is_member) self.assertFalse(form.fields['has_perm_member'].initial) # form with initial user instance: DummyUser().create_dummy_group(group_name='members') DummyUser().add_dummy_group(dummy_user, group_name='members') self.assertTrue(has_group(dummy_user, 'members')) form = self.cls_form(instance=dummy_user) self.assertTrue(form.is_member) self.assertEqual(form.fields['has_perm_member'].initial, form.is_member)
def processing(self, user, profile, msg): # Умови при яких зміни не відбудуться: if has_group(user, 'members'): msg.title = user.username msg.type = msgType.NoChange msg.message = "Акаунт вже має ці права доступу!" self.counter["доступ вже є"] += 1 elif profile and profile.is_recognized == False: msg.title = user.username msg.type = msgType.Error msg.message = "Відхилений Акаунт не може отримати права доступу!" self.counter["відхилені"] += 1 elif (not profile) or (profile and profile.is_recognized == None): msg.title = user.username msg.type = msgType.Error msg.message = "Непідтверджений Акаунт не може отримати права доступу!" self.counter["непідтверджені"] += 1 else: # Робимо зміни: add_group(user, 'members') user.save() msg.title = user.username msg.type = msgType.Change msg.message = "Права доступу встановлено!" self.counter["встановлено"] += 1 e_msg_body = "Ваш акаунт на сайті отримав права доступу " \ "члена кооперативу." self.send_e_mail(user, e_msg_body) return user, msg
def get_row(self, u): """ Визначає один рядок у двомірному масиві даних таблиці. Формат рядка: row[j] - елемент словника row = {...}, де j - номер колонки в таблиці (поч. з 1) row[0] - словник з даними про примірник: {'id': f.id, 'model': m} :param u: примірник user :return row: одновимірний масив """ if u: row = {} row[0] = self.get_model_id_name(u) row[1] = u.username row[2] = get_user_full_name(u) row[3] = get_user_flat_No(u) row[4] = u.email # row[5] = u.date_joined.isoformat() if u.date_joined else "" row[5] = u.date_joined if u.date_joined else "" row[6] = get_user_is_recognized(u) row[7] = u.is_active row[8] = has_group(u, 'members') else: # елемента нема => рядок таблиці має бути None row = None return row
def test_processing_changes_made(self): view = self.cls_view() user0 = self.george prof0 = getattr(user0, 'userprofile', None) user, msg = view.processing(user0, prof0, view.empty_msg) # Витягаємо з бази щойно збережені записи і перевіряємо user_db = get_or_none(User, id=user0.id) prof_db = get_or_none(UserProfile, user=user0) self.assertEqual(user.id, user_db.id) self.assertEqual(has_group(user_db, 'members'), True) self.assertEqual(msg.title, user_db.username) self.assertEqual(msg.type, msgType.Change) self.assertEqual(msg.message, "Права доступу встановлено!") self.assertEqual(view.counter["встановлено"], 1)
def test_form_save(self): dummy_user = DummyUser().create_dummy_user(username="******") DummyUser().create_dummy_group(group_name="members") self.assertFalse(has_group(dummy_user, "members")) # Створюємо форму з instance і data # (заповнюємо також required fields, бо super().save не зможе зберегти) data = {"username": "******", "has_perm_member": True, "date_joined": now()} form = self.cls_form(instance=dummy_user, data=data) saved_user = form.save() # Чи збережено? self.assertEqual(saved_user, User.objects.last()) # Чи змінилось значення поля? self.assertTrue(has_group(dummy_user, "members")) # Створюємо форму з user + додаткові data data = {"username": "******", "has_perm_member": False, "date_joined": now()} form = self.cls_form(instance=dummy_user, data=data) saved_user = form.save() # Чи збережено? self.assertEqual(saved_user, User.objects.last()) # Чи змінилось значення поля? self.assertFalse(has_group(dummy_user, "members"))
def test_processing_changes_made(self): view = self.cls_view() user0 = self.george prof0 = getattr(user0, 'userprofile', None) user, msg = view.processing(user0, prof0, view.empty_msg) # Витягаємо з бази щойно збережені записи і перевіряємо user_db = get_or_none(User, id=user0.id) prof_db = get_or_none(UserProfile, user=user0) self.assertEqual(user.id, user_db.id) self.assertEqual(has_group(user_db, 'members'), True) self.assertEqual(msg.title , user_db.username) self.assertEqual(msg.type , msgType.Change) self.assertEqual(msg.message, "Права доступу встановлено!") self.assertEqual(view.counter["встановлено"], 1)
def processing(self, user, profile, msg): # Умови при яких зміни не відбудуться: if not has_group(user, 'members'): msg.title = user.username msg.type = msgType.NoChange msg.message = "Акаунт вже позбавлений цього права доступу!" else: # Робимо зміни: remove_group(user, 'members') user.save() msg.title = user.username msg.type = msgType.Change msg.message = "Право доступу вилучено!" e_msg_body = "Ваш акаунт на сайті позбавлений права доступу " \ "члена кооперативу." self.send_e_mail(user, e_msg_body) return user, msg
def test_init_and_get_is_member(self): form = self.cls_form() # empty form: self.assertFalse(form.is_member) self.assertFalse(form.fields["has_perm_member"].initial) dummy_user = DummyUser().create_dummy_user(username="******") # form with initial data initial_data = {"username": "******"} form = self.cls_form(data=initial_data) self.assertFalse(form.is_member) self.assertFalse(form.fields["has_perm_member"].initial) # form with initial user instance: DummyUser().create_dummy_group(group_name="members") DummyUser().add_dummy_group(dummy_user, group_name="members") self.assertTrue(has_group(dummy_user, "members")) form = self.cls_form(instance=dummy_user) self.assertTrue(form.is_member) self.assertEqual(form.fields["has_perm_member"].initial, form.is_member)
def test_remove_group_gives_false_if_no_group(self): remove_group(self.user, 'members') self.assertFalse(has_group(self.user, 'members'))
def test_remove_group(self): DummyUser().create_dummy_group(group_name='members') add_group(self.user, 'members') self.assertTrue(has_group(self.user, 'members')) remove_group(self.user, 'members') self.assertFalse(has_group(self.user, 'members'))
def test_has_group(self): DummyUser().create_dummy_group(group_name='members') DummyUser().add_dummy_group(self.user, group_name='members') self.assertTrue(has_group(self.user, 'members'))
def test_has_group_gives_false(self): self.assertFalse(has_group(self.user, 'members'))