def setUp(self): user_1 = User.objects.create(username='******') user_1.set_password('password-1') user_1.save() file_hash_1 = File(open(MEDIA_ROOT + '/test_file_1', 'w')) file_hash_1.write('Хеш-1') file_hash_1.close() file_hash_1.open('r') order_1 = Order.objects.create(title='Название-1', text='Текст-1', date=timezone.now(), author=user_1, order_hash=file_hash_1, is_closed=False) file_hash_1.close() self.order_1 = order_1 for i in range(2): UserOrder.objects.create(user=user_1, order=order_1, is_accepted=False, is_completed=False) Signature.objects.create(signer=user_1, order=order_1, is_correct=False)
def test(self): f = open("base/apps.py", "rb") file = DjangoFile(f) assert file.name == "base/apps.py" file.open() file_hash = compute_file_hash(file) assert file_hash assert file.size
def get(self, request, *args, **kwargs): fcode = kwargs["fcode"] file = None for ext in self.ext_list: filename = self.root_dir + self.base_dir + fcode + "." + ext if os.path.exists(filename): file = File(None, filename) file.open('r') print "OK: %s" % filename break else: print "Failed: %s" % filename if not file: raise Http404 return serve_file(request, file, save_as=False)
def obj_create(self, bundle, **kwargs): bundle = super(ServiceResource, self).obj_create(bundle, **kwargs) projection = pyproj.Proj(str(bundle.obj.projection)) bundle.obj.full_extent.projection = projection bundle.obj.initial_extent.projection = projection for variable in bundle.obj.variable_set.all(): variable.full_extent.projection = projection if bundle.data.get('tmp_file'): tmp_file = TemporaryFileResource().get_via_uri(bundle.data['tmp_file'], request=bundle.request) tmp_file.file.open() if tmp_file.extension.lower() == "zip": zf = ZipFile(tmp_file.file, 'r') nc_name = None for name in zf.namelist(): if name[-3:].lower() == ".nc": nc_name = name break if not nc_name: raise ImmediateHttpResponse(HttpBadRequest('Could not find .nc file in zip archive')) fp = File(BytesIO(zf.read(name))) else: fp = File(tmp_file.file) fp.open() base_filename = tmp_file.filename[:-len(tmp_file.extension)-1] name = default_storage.save( "{0}{1}/{2}.nc".format(SERVICE_DATA_ROOT, bundle.obj.name, base_filename), fp ) bundle.obj.data_path = name[len(SERVICE_DATA_ROOT):] bundle.obj.save() tmp_file.delete() return bundle else: raise ImmediateHttpResponse(HttpBadRequest("Missing required 'tmp_file' parameter"))
def obj_create(self, bundle, **kwargs): bundle = super(ServiceResource, self).obj_create(bundle, **kwargs) projection = Proj(str(bundle.obj.projection)) bundle.obj.full_extent.projection = projection bundle.obj.initial_extent.projection = projection for variable in bundle.obj.variable_set.all(): variable.full_extent.projection = projection if bundle.data.get('tmp_file'): tmp_file = TemporaryFileResource().get_via_uri(bundle.data['tmp_file'], request=bundle.request) tmp_file.file.open() if tmp_file.extension.lower() == "zip": zf = ZipFile(tmp_file.file, 'r') nc_name = None for name in zf.namelist(): if name[-3:].lower() == ".nc": nc_name = name break if not nc_name: raise ImmediateHttpResponse(HttpBadRequest('Could not find .nc file in zip archive')) fp = File(io.BytesIO(zf.read(name))) else: fp = File(tmp_file.file) fp.open() base_filename = tmp_file.filename[:-len(tmp_file.extension) - 1] name = default_storage.save( "{0}{1}/{2}.nc".format(SERVICE_DATA_ROOT, bundle.obj.name, base_filename), fp ) bundle.obj.data_path = name[len(SERVICE_DATA_ROOT):] bundle.obj.save() tmp_file.delete() return bundle else: raise ImmediateHttpResponse(HttpBadRequest("Missing required 'tmp_file' parameter"))
def setUpTestData(cls): user = User.objects.create(username='******', first_name='Андрей', last_name='Петров') user.set_password('password') user.save() user_profile = UserProfile.objects.create(user=user, middle_name='Сергеевич') user_profile.save() file_hash = File(open(MEDIA_ROOT + '/test_file_1', 'w')) file_hash.write('Хеш') file_hash.close() file_hash.open('r') order = Order.objects.create(title='Название', text='Текст', date=timezone.now(), author=user, order_hash=file_hash, is_closed=False) file_hash.close() UserOrder.objects.create(user=user, order=order, is_accepted=False, is_completed=False) Comment.objects.create( user=user, order=order, date=timezone.now(), text= 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod' )