Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
 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
Ejemplo n.º 3
0
 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)
Ejemplo n.º 4
0
    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"))
Ejemplo n.º 5
0
    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"))
Ejemplo n.º 6
0
    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'
        )