def test_get_report_path(self): # patt = 'uploads\\folders\\%s\\%s.data' patt = os.path.join('uploads', 'folders', '%s', '%s.data') self.assertEqual(get_report_path(1), patt % (0, 1)) self.assertEqual(get_report_path(511), patt % (0, 511)) self.assertEqual(get_report_path(512), patt % (1, 512)) self.assertEqual(get_report_path(1024), patt % (2, 1024))
def code_file_names(self, request, queryset): i = 0 print('%-6s %-6s %-30s %s' % ('id', 'parent', 'file', 'newFilePath')) for obj in queryset: try: # Старий шлях до файла - дотеперішнє фактичне розташування oldAbsPath = os.path.join(MEDIA_ROOT, obj.file.name) oldAbsPath = os.path.normpath(oldAbsPath) # Файл буде збережено під новою кодовою назвою newFilePath = get_report_path(obj.id) newAbsPath = os.path.join(MEDIA_ROOT, newFilePath) newAbsPath = os.path.normpath(newAbsPath) print('%-6s %-6s %-30s %s' % (obj.id, obj.parent.id, obj.file, newAbsPath)) obj.file.name = newFilePath # атрибут file повинен мати актуальну назву файла os.renames(oldAbsPath, newAbsPath) obj.save() i += 1 except: print('%-6s %-6s %-30s %s' % (obj.id, obj.parent.id, obj.file, 'NOT RENAMED')) if i == 1: message_bit = "%s object was" % i else: message_bit = "%s objects were" % i self.message_user(request, "%s successfully renamed." % message_bit)