Example #1
0
    def setUp(self):
        self.app = Webapp.objects.get(pk=337141)
        self.app.update(is_packaged=True, status=amo.WEBAPPS_UNREVIEWED_STATUS)
        self.dev = self.app.authors.all()[0]
        self.regular = UserProfile.objects.get(pk=999)
        self.version = self.app.versions.latest()
        self.file = self.version.all_files[0]

        self.versions = [
            self.version,
            self.app.versions.create(version='%s.1' % self.version.version)
        ]

        self.files = [
            self.file,
            File.objects.create(version=self.versions[1],
                                filename='webapp.zip')
        ]

        self.login_as_editor()

        for file_obj in self.files:
            src = os.path.join(settings.ROOT, packaged_app)
            try:
                os.makedirs(os.path.dirname(file_obj.file_path))
            except OSError:
                pass
            shutil.copyfile(src, file_obj.file_path)

        self.file_viewer = FileViewer(self.file, is_webapp=True)
        # Setting this to True, so we are delaying the extraction of files,
        # in the tests, the files won't be extracted.
        # Most of these tests extract as needed to.
        self.create_switch(name='delay-file-viewer')
Example #2
0
    def setUp(self):
        self.addon = Addon.objects.get(pk=3615)
        self.dev = self.addon.authors.all()[0]
        self.regular = UserProfile.objects.get(pk=999)
        self.version = self.addon.versions.latest()
        self.file = self.version.all_files[0]

        self.file_two = File()
        self.file_two.version = self.version
        self.file_two.filename = 'dictionary-test.xpi'
        self.file_two.save()

        self.login_as_editor()

        self.old_tmp = settings.TMP_PATH
        self.old_addon = settings.ADDONS_PATH
        settings.TMP_PATH = tempfile.mkdtemp()
        settings.ADDONS_PATH = tempfile.mkdtemp()

        dictionary = 'apps/files/fixtures/files/dictionary-test.xpi'
        for file_obj in [self.file, self.file_two]:
            src = os.path.join(settings.ROOT, dictionary)
            try:
                os.makedirs(os.path.dirname(file_obj.file_path))
            except OSError:
                pass
            shutil.copyfile(src, file_obj.file_path)

        self.file_viewer = FileViewer(self.file)
Example #3
0
    def setUp(self):
        self.addon = Addon.objects.get(pk=3615)
        self.dev = self.addon.authors.all()[0]
        self.regular = UserProfile.objects.get(pk=999)
        self.version = self.addon.versions.latest()
        self.file = self.version.all_files[0]

        self.file_two = File()
        self.file_two.version = self.version
        self.file_two.filename = 'dictionary-test.xpi'
        self.file_two.save()

        self.login_as_editor()

        self.old_tmp = settings.TMP_PATH
        self.old_addon = settings.ADDONS_PATH
        settings.TMP_PATH = tempfile.mkdtemp()
        settings.ADDONS_PATH = tempfile.mkdtemp()

        for file_obj in [self.file, self.file_two]:
            src = os.path.join(settings.ROOT, dictionary)
            try:
                os.makedirs(os.path.dirname(file_obj.file_path))
            except OSError:
                pass
            shutil.copyfile(src, file_obj.file_path)

        self.file_viewer = FileViewer(self.file)
        # Setting this to True, so we are delaying the extraction of files,
        # in the tests, the files won't be extracted.
        # Most of these tests extract as needed to.
        Switch.objects.create(name='delay-file-viewer', active=True)
Example #4
0
    def setUp(self):
        self.left = File.objects.get(pk=25753)
        self.viewer = FileViewer(self.left)

        if not os.path.exists(os.path.dirname(self.viewer.src)):
            os.makedirs(os.path.dirname(self.viewer.src))
            open(self.viewer.src, 'w')
Example #5
0
    def setUp(self):
        self.left = File.objects.get(pk=25753)
        self.viewer = FileViewer(self.left)

        if not os.path.exists(os.path.dirname(self.viewer.src)):
            os.makedirs(os.path.dirname(self.viewer.src))
            with storage.open(self.viewer.src, 'w') as f:
                f.write('some data\n')
Example #6
0
 def wrapper(request, file_id, key, *args, **kw):
     viewer = FileViewer(get_object_or_404(File, pk=file_id))
     token = request.GET.get('token')
     if not token:
         log.error('Denying access to %s, no token.' % viewer.file.id)
         raise PermissionDenied
     if not Token.valid(token, [viewer.file.id, key]):
         log.error('Denying access to %s, token invalid.' % viewer.file.id)
         raise PermissionDenied
     return func(request, viewer, key, *args, **kw)
Example #7
0
 def wrapper(request, file_id, key, *args, **kw):
     viewer = FileViewer(get_object_or_404(File, pk=file_id))
     token = request.GET.get('token')
     if not token:
         log.error('Denying access to %s, no token.' % viewer.file.id)
         return http.HttpResponseForbidden()
     if not Token.valid(token, [viewer.file.id, key]):
         log.error('Denying access to %s, token invalid.' % viewer.file.id)
         return http.HttpResponseForbidden()
     return func(request, viewer, key, *args, **kw)
Example #8
0
 def wrapper(request, file_id, *args, **kw):
     file_ = get_object_or_404(File, pk=file_id)
     result = allowed(request, file_)
     if result is not True:
         return result
     obj = FileViewer(file_, is_webapp=kwargs.get('is_webapp', False))
     response = func(request, obj, *args, **kw)
     if obj.selected:
         response['ETag'] = '"%s"' % obj.selected.get('md5')
         response['Last-Modified'] = http_date(obj.selected.get('modified'))
     return response
Example #9
0
    def setUp(self):
        dictionary = 'apps/files/fixtures/files/dictionary-test.xpi'
        src = os.path.join(settings.ROOT, dictionary)

        file_obj = Mock()
        file_obj.id = file_obj.pk = 1
        file_obj.file_path = src

        self.viewer = FileViewer(file_obj)

        self.old_tmp = settings.TMP_PATH
        settings.TMP_PATH = tempfile.mkdtemp()
Example #10
0
    def wrapper(request, file_id, *args, **kw):
        file_ = get_object_or_404(File, pk=file_id)
        result = allowed(request, file_)
        if result is not True:
            return result
        try:
            obj = FileViewer(file_, )
        except ObjectDoesNotExist:
            raise http.Http404

        response = func(request, obj, *args, **kw)
        if obj.selected:
            response['ETag'] = '"%s"' % obj.selected.get('md5')
            response['Last-Modified'] = http_date(obj.selected.get('modified'))
        return response
Example #11
0
    def setUp(self):
        self.addon = Addon.objects.get(pk=3615)
        self.dev = self.addon.authors.all()[0]
        self.regular = UserProfile.objects.get(pk=999)
        self.version = self.addon.versions.latest()
        self.file = self.version.all_files[0]

        p = Platform.objects.filter(id__in=(amo.PLATFORM_WIN.id,
                                            amo.PLATFORM_LINUX.id,
                                            amo.PLATFORM_MAC.id))

        self.file.update(platform=p[0])

        self.files = [
            self.file,
            File.objects.create(version=self.version,
                                platform=p[1],
                                hash='abc123',
                                filename='dictionary-test.xpi'),
            File.objects.create(version=self.version,
                                platform=p[2],
                                hash='abc123',
                                filename='dictionary-test.xpi')
        ]

        self.login_as_editor()

        for file_obj in self.files:
            src = os.path.join(settings.ROOT, dictionary)
            try:
                os.makedirs(os.path.dirname(file_obj.file_path))
            except OSError:
                pass
            shutil.copyfile(src, file_obj.file_path)

        self.file_viewer = FileViewer(self.file)
        # Setting this to True, so we are delaying the extraction of files,
        # in the tests, the files won't be extracted.
        # Most of these tests extract as needed to.
        Switch.objects.get_or_create(name='delay-file-viewer', active=True)
Example #12
0
 def setUp(self):
     super(TestFileHelper, self).setUp()
     self.viewer = FileViewer(make_file(1, get_file('dictionary-test.xpi')))
Example #13
0
 def setUp(self):
     self.viewer = FileViewer(make_file(1, get_file('dictionary-test.xpi')))
Example #14
0
 def test_default_package_json(self):
     viewer = FileViewer(make_file(3, get_file('new-format-0.0.1.xpi')))
     viewer.extract()
     assert viewer.get_default(None) == 'package.json'
Example #15
0
 def test_default_webextension(self):
     viewer = FileViewer(make_file(2, get_file('webextension.xpi')))
     viewer.extract()
     assert viewer.get_default(None) == 'manifest.json'
Example #16
0
 def wrapper(request, file_id, *args, **kw):
     file = get_object_or_404(File, pk=file_id)
     result = allowed(request, file)
     if result is not True:
         return result
     return func(request, FileViewer(file), *args, **kw)
Example #17
0
    def setUp(self):
        self.old_tmp = settings.TMP_PATH
        settings.TMP_PATH = tempfile.mkdtemp()

        self.viewer = FileViewer(make_file(1, dictionary))