def test_saving_and_retrieving_reports(self): folder = Folder() folder.save() first_report = Report() first_report.filename = 'The first (ever) folder report' first_report.parent = folder first_report.save() second_report = Report() second_report.filename = 'Report the second' second_report.parent = folder second_report.save() saved_folder = Folder.objects.first() self.assertEqual(saved_folder, folder) saved_reports = Report.objects.all() self.assertEqual(saved_reports.count(), 2) first_saved_report = saved_reports[0] second_saved_report = saved_reports[1] self.assertEqual(first_saved_report.filename, 'The first (ever) folder report') self.assertEqual(first_saved_report.parent, folder) self.assertEqual(second_saved_report.filename, 'Report the second') self.assertEqual(second_saved_report.parent, folder)
def copy_folder(folder,user): feeds, items = [], [] folderCopy = Folder(default_folder=True, user=user, name=folder.name) folderCopy.save() transaction.commit() for feed in folder.feeds: feedCopy = SubscriptionFeed(custom_name=None, rawfeed =feed.rawfeed, folder =folderCopy) feedCopy.save() feeds.append(feedCopy) transaction.commit() for feed in feeds: for item in feed.rawfeed.items: itemCopy = SubscriptionItem(read = False, clicked = False, raw_item = item, feed = feed) itemCopy.save() transaction.commit() return folderCopy
def create_dummy_root_folder(self, name="dummy_root_folder", parent=None, created_on=None): # створюємо теку з id=1 для folders/1/contents/: folder = Folder(id=1, name=name, parent=parent, created_on=created_on) folder.save() # print('created folder:', folder) return folder
def create_dummy_folder(self, id=None, name="dummy_folder", parent=None, created_on=None): # створюємо теку: folder = Folder(id=id, name=name, parent=parent, created_on=created_on) folder.save() # print('created folder:', folder) return folder
def processing(self, element, rqst, msg): """ Цю функцію треба переозначити у дочірньому класі. Тут наводиться як ПРИКЛАД. """ f_name_list = [f.name for f in Folder.objects.filter(parent_id=rqst.parent_id)] # Умови при яких зміни не відбудуться: if not rqst.name or rqst.name == "": msg.type = msgType.IncorrectData msg.title = "Нова тека" msg.message = "Ви не вказали назву теки!" elif rqst.name in f_name_list: msg.type = msgType.IncorrectData msg.title = "Нова тека" msg.message = "Тека з такою назвою вже існує!" else: # Робимо зміни: folder = Folder() folder.name = rqst.name folder.parent = Folder.objects.get(id=rqst.parent_id) folder.created_on = timezone.now() # не використовуємо auto_now folder.save() # остаточне збереження msg.title = folder.name msg.type = msgType.NewRow msg.message = "Тека створена!" element = folder return element, msg
def processing(self, folder, rqst, msg): # Список існуючих імен в теці: f_name_list = [ f.name for f in Folder.objects.filter(parent_id=rqst.parent_id) ] # Умови при яких зміни не відбудуться: if not rqst.name or rqst.name == "": msg.type = msgType.IncorrectData msg.title = "Нова тека" msg.message = "Ви не вказали назву теки!" elif rqst.name in f_name_list: msg.type = msgType.IncorrectData msg.title = "Нова тека" msg.message = "Тека з такою назвою вже існує!" else: # Робимо зміни: folder = Folder() # новий примірник folder.name = rqst.name folder.parent = Folder.objects.get(id=rqst.parent_id) folder.created_on = timezone.now() # не використовуємо auto_now folder.save() # остаточне збереження msg.title = folder.name msg.type = msgType.NewRow msg.message = "Теку створено!" return folder, msg
def post(self, request, format=None): user = request.user category_name_list = request.data['category_name_list'] category_name_list = category_name_list.split(',') created_folers = [] for category_name in category_name_list: folder = Folder() folder.name = category_name folder.color = self.get_random_color() folder.creator = user folder.save() created_folers.append(folder) folders = Folder.objects.filter(creator=user) serializer = FolderSerializer(folders, many=True) return Response(data=serializer.data, status=status.HTTP_201_CREATED)
def processing(self, folder, rqst, msg): # Список існуючих імен в теці: f_name_list = [f.name for f in Folder.objects.filter(parent_id=rqst.parent_id)] # Умови при яких зміни не відбудуться: if not rqst.name or rqst.name == "": msg.type = msgType.IncorrectData msg.title = "Нова тека" msg.message = "Ви не вказали назву теки!" elif rqst.name in f_name_list: msg.type = msgType.IncorrectData msg.title = "Нова тека" msg.message = "Тека з такою назвою вже існує!" else: # Робимо зміни: folder = Folder() # новий примірник folder.name = rqst.name folder.parent = Folder.objects.get(id=rqst.parent_id) folder.created_on = timezone.now() # не використовуємо auto_now folder.save() # остаточне збереження msg.title = folder.name msg.type = msgType.NewRow msg.message = "Теку створено!" return folder, msg
def test_empty_name_gives_error(self): f = Folder(name="") with self.assertRaises(ValidationError): f.full_clean()
def test_no_name_gives_error(self): f = Folder(name=None) with self.assertRaises(IntegrityError): f.save()
def test_model_name(self): self.assertEqual(model_name(Folder), "folder") self.assertEqual(model_name(Folder()), "folder")