def test_processing_error_no_profile(self): view = self.cls_view() user0 = self.ringo 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, user0) self.assertEqual(msg.title , user0.username) self.assertEqual(msg.type , msgType.Error) self.assertEqual(msg.message, "Непідтверджений Акаунт не може отримати права доступу!") self.assertEqual(view.counter["непідтверджені"], 1)
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(user_db.is_active, 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_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_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_processing_changes_made_no_profile(self): view = self.cls_view() user0 = self.ringo 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(user_db.is_active, False) self.assertEqual(msg.title , user_db.username) self.assertEqual(msg.type , msgType.Error) self.assertEqual(msg.message, "Непідтверджений Акаунт не можна активувати!") self.assertEqual(view.counter["непідтверджені"], 1)
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(user_db.is_active, 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_processing_changes_made_no_profile(self): view = self.cls_view() user0 = self.ringo 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(user_db.is_active, False) self.assertEqual(msg.title, user_db.username) self.assertEqual(msg.type, msgType.Error) self.assertEqual(msg.message, "Непідтверджений Акаунт не можна активувати!") self.assertEqual(view.counter["непідтверджені"], 1)
def test_processing_error_no_profile(self): view = self.cls_view() user0 = self.ringo 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, user0) self.assertEqual(msg.title, user0.username) self.assertEqual(msg.type, msgType.Error) self.assertEqual( msg.message, "Непідтверджений Акаунт не може отримати права доступу!") self.assertEqual(view.counter["непідтверджені"], 1)
def group_processing(self, users_set): response_set = [] for user in users_set: msg = deepcopy(self.empty_msg) profile = get_or_none(UserProfile, user=user) # profile # Елемент - рядок таблиці ДО змін: old_element = UsersTableArray().get_row(user) # dict_print(old_element, 'old_element') user, msg = self.processing(user, profile, msg) # Елемент - рядок таблиці ПІСЛЯ змін (якщо були): new_element = UsersTableArray().get_row(user) # dict_print(new_element, 'new_element') # Зміни рядка в таблиці: if msg.type == msgType.NewRow: changes = new_element else: changes = UsersTableArray().get_cell_changes( old_element, new_element) supplement = UsersTableArray().get_supplement_data(user) # Формуємо словник для передачі в шаблон через XHR: response_cont = vars(msg) response_cont['model'] = user._meta.model_name response_cont['id'] = str(user.id) response_cont['changes'] = changes response_cont['supplement'] = supplement response_set.append(response_cont) return response_set
def get_request_data_set(self, request): # Розбираємо дані від клієнта: try: d = parseClientRequest(request.POST) except ValueError as err: # запит від клієнта містить невідповідні дані: print('get_request_data_set:', err.args) return None browTabName = d.get('browTabName') if browTabName != 'users_table': return None self.sendMail = d['sendMail'] elemSet = d.get('elemSet') users_set = [] if elemSet: for elem in elemSet: model = elem.get('model') if model: if model not in get_browTabName_models().get(browTabName): print( 'Error data in request.POST: model name in elemSet does not correspond to table name', model, browTabName) return None if model == "user": user_id = elem.get('id') user = get_or_none(User, id=user_id) # selected user if user: users_set.append(user) return users_set
def get_request_data(self, request): # Розбираємо дані від клієнта: try: d = parseClientRequest(request.POST) except ValueError as err: # запит від клієнта містить невідповідні дані: print('get_request_data:', err.args) return None, None self.sendMail = d.get('sendMail') user_id = d.get('id') # id of selected user if d.get('model') == "user": user = get_or_none(User, id=user_id) # selected user profile = get_or_none(UserProfile, user=user) # profile return user, profile else: return None, None
def group_processing(self, users_set): response_set = [] for user in users_set: msg = deepcopy(self.empty_msg) profile = get_or_none(UserProfile, user=user) # profile # Елемент - рядок таблиці ДО змін: old_element = UsersTableArray().get_row(user) # dict_print(old_element, 'old_element') user, msg = self.processing(user, profile, msg) # Елемент - рядок таблиці ПІСЛЯ змін (якщо були): new_element = UsersTableArray().get_row(user) # dict_print(new_element, 'new_element') # Зміни рядка в таблиці: if msg.type == msgType.NewRow: changes = new_element else: changes = UsersTableArray().get_cell_changes(old_element, new_element) supplement = UsersTableArray().get_supplement_data(user) # Формуємо словник для передачі в шаблон через XHR: response_cont = vars(msg) response_cont['model'] = user._meta.model_name response_cont['id'] = str(user.id) response_cont['changes'] = changes response_cont['supplement'] = supplement response_set.append(response_cont) return response_set
def get_request_data_set(self, request): # Розбираємо дані від клієнта: try: d = parseClientRequest(request.POST) except ValueError as err: # запит від клієнта містить невідповідні дані: print('get_request_data_set:', err.args) return None browTabName = d.get('browTabName') if browTabName != 'users_table': return None self.sendMail = d['sendMail'] elemSet = d.get('elemSet') users_set = [] if elemSet: for elem in elemSet: model = elem.get('model') if model: if model not in get_browTabName_models().get(browTabName): print('Error data in request.POST: model name in elemSet does not correspond to table name', model, browTabName) return None if model == "user": user_id = elem.get('id') user = get_or_none(User, id=user_id) # selected user if user: users_set.append(user) return users_set
def processing(self, element, rqst, msg): # Список існуючих імен в теці призначення: if rqst.model == "folder": target_name_list = [ f.name for f in Folder.objects.filter(parent_id=rqst.target_id) ] elif rqst.model == "report": target_name_list = [ f.filename for f in Report.objects.filter(parent_id=rqst.target_id) ] else: target_name_list = None target = get_or_none(Folder, id=rqst.target_id) # Умови при яких зміни не відбудуться: if not rqst.target_id or rqst.target_id in (0, '0'): msg.title = rqst.name msg.type = msgType.IncorrectData msg.message = "Ви не обрали місце призначення!" elif rqst.target_id == rqst.parent_id: msg.title = rqst.name msg.type = msgType.NoChange msg.message = "Ви не змінили розташування!" elif rqst.model == 'folder' and rqst.target_id == rqst.id: msg.title = rqst.name msg.type = msgType.IncorrectData msg.message = "Не можна перемістити теку саму в себе :)" elif rqst.name in target_name_list: msg.title = rqst.name msg.type = msgType.IncorrectData msg.message = "В обраному місці призначення є %s з такою назвою!" % \ ("тека" if rqst.model == 'folder' else "файл") elif not element or not target: msg.title = rqst.name msg.type = msgType.Error msg.message = "Не вдалося змінити розташування! " \ "Можливо обране місце призначення не існує." else: # Робимо зміни: element.parent = target element.save() # збереження в базі msg.title = rqst.name msg.type = msgType.MoveElement msg.message = "%s переміщено!" % \ ("Теку" if rqst.model == 'folder' else "Файл") return element, msg
def processing(self, element, rqst, msg): # Список існуючих імен в теці призначення: if rqst.model == "folder": target_name_list = [f.name for f in Folder.objects.filter(parent_id=rqst.target_id)] elif rqst.model == "report": target_name_list = [f.filename for f in Report.objects.filter(parent_id=rqst.target_id)] else: target_name_list = None target = get_or_none(Folder, id=rqst.target_id) # Умови при яких зміни не відбудуться: if not rqst.target_id or rqst.target_id in (0, '0'): msg.title = rqst.name msg.type = msgType.IncorrectData msg.message = "Ви не обрали місце призначення!" elif rqst.target_id == rqst.parent_id: msg.title = rqst.name msg.type = msgType.NoChange msg.message = "Ви не змінили розташування!" elif rqst.model == 'folder' and rqst.target_id == rqst.id: msg.title = rqst.name msg.type = msgType.IncorrectData msg.message = "Не можна перемістити теку саму в себе :)" elif rqst.name in target_name_list: msg.title = rqst.name msg.type = msgType.IncorrectData msg.message = "В обраному місці призначення є %s з такою назвою!" % \ ("тека" if rqst.model == 'folder' else "файл") elif not element or not target: msg.title = rqst.name msg.type = msgType.Error msg.message = "Не вдалося змінити розташування! " \ "Можливо обране місце призначення не існує." else: # Робимо зміни: element.parent = target element.save() # збереження в базі msg.title = rqst.name msg.type = msgType.MoveElement msg.message = "%s переміщено!" % \ ("Теку" if rqst.model == 'folder' else "Файл") return element, msg
def test_get_model_id_name_2(self): user = get_or_none(User, id=3) expected = {} m_id_n = self.bta_cls().get_model_id_name(user) self.assertEqual(m_id_n, expected)
def test_get_or_none_gives_error_if_multiple(self): DummyFlat().create_dummy_building() with self.assertRaises(MultipleObjectsReturned): get_or_none(Flat, floor_No="2")
def test_get_or_none(self): flat = DummyFlat().create_dummy_flat(id=1, flat_No="1") self.assertEqual(get_or_none(Flat, id=1), flat) self.assertEqual(get_or_none(Flat, id=1, flat_No="1"), flat) self.assertFalse(get_or_none(Flat, id=1, flat_No="2"))
def test_get_model_id_name(self): user = get_or_none(User, id=1) expected = {'id': '1', 'model': 'user', 'name': 'fred'} m_id_n = self.bta_cls().get_model_id_name(user) self.assertEqual(m_id_n, expected)
def test_get_row_2(self): user = get_or_none(User, id=3) expected = None row = self.bta_cls().get_row(user) self.assertEqual(row, expected)
def test_get_cell_99(self): user = get_or_none(User, id=1) expected = None row = self.bta_cls().get_cell(user, 99) self.assertEqual(row, expected)
def test_get_supplement_data(self): user = get_or_none(User, id=1) expected = {} data = self.bta_cls().get_supplement_data(user) self.assertEqual(data, expected)
def test_get_cell(self): user = get_or_none(User, id=1) expected = {'id': '1', 'model': 'user', 'name': 'fred'} row = self.bta_cls().get_cell(user, 0) self.assertEqual(row, expected)