def test_upload_files_uses_environment_variables(self):
     with patch.dict(os.environ,
                     UBUNTU_STORE_UPLOAD_ROOT_URL='http://example.com'):
         upload_url = 'http://example.com/unscanned-upload/'
         upload_files(self.binary_file.name)
         self.mock_post.assert_called_once_with(
             upload_url, files={'binary': ANY})
Example #2
0
    def test_upload_files_uses_environment_variables(self):
        with patch.dict(os.environ,
                        UBUNTU_STORE_UPLOAD_ROOT_URL='http://example.com'):
            upload_url = 'http://example.com/unscanned-upload/'
            upload_files(self.binary_file.name)
            self.mock_post.assert_called_once_with(
                upload_url, data=ANY, headers={'Content-Type': ANY})

        self.mock_progressbar.assert_called_once_with(
            maxval=self.binary_file_size,
            widgets=['Uploading {} '.format(self.binary_file.name), ANY, ' ',
                     ANY])
    def test_upload_files_uses_environment_variables(self):
        with patch.dict(os.environ,
                        UBUNTU_STORE_UPLOAD_ROOT_URL='http://example.com'):
            upload_url = 'http://example.com/unscanned-upload/'
            upload_files(self.binary_file.name)
            self.mock_post.assert_called_once_with(
                upload_url, data=ANY, headers={'Content-Type': ANY})

        self.mock_progressbar.assert_called_once_with(
            maxval=self.binary_file_size,
            widgets=[
                'Uploading {} '.format(self.binary_file.name), ANY, ' ', ANY
            ])
 def test_upload_files_with_invalid_oauth_session(self):
     self.mock_get_oauth_session.return_value = None
     response = upload_files(self.binary_file.name)
     self.assertEqual(response, {
         'success': False,
         'errors': ['No valid credentials found.'],
     })
     self.assertFalse(self.mock_post.called)
Example #5
0
    def upload(self, snap_name, snap_filename):
        # FIXME This should be raised by the function that uses the
        # discharge. --elopio -2016-06-20
        if self.conf.get('unbound_discharge') is None:
            raise errors.InvalidCredentialsError(
                'Unbound discharge not in the config file')

        updown_data = _upload.upload_files(snap_filename, self.updown)

        return self.sca.snap_push_metadata(snap_name, updown_data)
    def test_upload_files_handle_malformed_response(self):
        mock_response = self.mock_post.return_value
        mock_response.json.return_value = {'successful': False}

        response = upload_files(self.binary_file.name)
        err = KeyError('upload_id')
        self.assertEqual(response, {
            'success': False,
            'errors': [str(err)],
        })
Example #7
0
    def upload(self, snap_name, snap_filename):
        # FIXME This should be raised by the function that uses the
        # discharge. --elopio -2016-06-20
        if self.conf.get('unbound_discharge') is None:
            raise errors.InvalidCredentialsError(
                'Unbound discharge not in the config file')

        updown_data = _upload.upload_files(snap_filename, self.updown)

        return self._refresh_if_necessary(
            self.sca.snap_push_metadata, snap_name, updown_data)
    def test_upload_files_error_response(self):
        mock_response = self.mock_post.return_value
        mock_response.ok = False
        mock_response.reason = '500 INTERNAL SERVER ERROR'
        mock_response.text = 'server failed'

        response = upload_files(self.binary_file.name)
        self.assertEqual(response, {
            'success': False,
            'errors': ['server failed'],
        })
 def test_upload_files_with_invalid_oauth_session(self):
     self.mock_get_oauth_session.return_value = None
     response = upload_files(self.binary_file.name)
     self.assertEqual(
         response, {
             'success':
             False,
             'errors': [
                 'No valid credentials found. Have you run "snapcraft login"?'
             ],
         })
     self.assertFalse(self.mock_post.called)
     self.assertFalse(self.mock_progressbar.called)
Example #10
0
    def upload(self, snap_name, snap_filename, delta_format=None,
               source_hash=None, target_hash=None, delta_hash=None):
        # FIXME This should be raised by the function that uses the
        # discharge. --elopio -2016-06-20
        if self.conf.get('unbound_discharge') is None:
            raise errors.InvalidCredentialsError(
                'Unbound discharge not in the config file')

        updown_data = _upload.upload_files(snap_filename, self.updown)

        return self._refresh_if_necessary(
            self.sca.snap_push_metadata, snap_name, updown_data,
            delta_format=delta_format, source_hash=source_hash,
            target_hash=target_hash, delta_hash=delta_hash)
Example #11
0
    def upload(self, snap_filename):
        if not os.path.exists(snap_filename):
            raise FileNotFoundError(snap_filename)
        snap_name = _get_name_from_snap_file(snap_filename)

        if self.conf.get('unbound_discharge') is None:
            raise errors.InvalidCredentialsError()
        data = _upload.upload_files(snap_filename, self.updown)
        success = data.get('success', False)
        if not success:
            return data

        result = _upload.upload_app(self.sca, snap_name, data)
        return result
Example #12
0
    def upload(self, snap_filename):
        if not os.path.exists(snap_filename):
            raise FileNotFoundError(snap_filename)
        snap_name = _get_name_from_snap_file(snap_filename)

        if self.conf.get('unbound_discharge') is None:
            raise errors.InvalidCredentialsError()
        data = _upload.upload_files(snap_filename, self.updown)
        success = data.get('success', False)
        if not success:
            return data

        result = _upload.upload_app(self.sca, snap_name, data)
        return result
Example #13
0
    def test_upload_files_handle_malformed_response(self):
        mock_response = self.mock_post.return_value
        mock_response.json.return_value = {'successful': False}

        response = upload_files(self.binary_file.name)
        err = KeyError('upload_id')
        self.assertEqual(response, {
            'success': False,
            'errors': [str(err)],
        })

        self.mock_progressbar.assert_called_once_with(
            maxval=self.binary_file_size,
            widgets=['Uploading {} '.format(self.binary_file.name), ANY, ' ',
                     ANY])
    def test_upload_files_with_source_upload(self):
        mock_response = self.mock_post.return_value
        mock_response.ok = True
        mock_response.json.return_value = {
            'successful': True,
            'upload_id': 'some-valid-upload-id',
        }

        response = upload_files(self.binary_file.name)
        self.assertEqual(response, {
            'success': True,
            'errors': [],
            'upload_id': 'some-valid-upload-id',
            'binary_filesize': os.path.getsize(self.binary_file.name),
            'source_uploaded': False,
        })
Example #15
0
    def upload(self, snap_filename):
        snap_name = _get_name_from_snap_file(snap_filename)

        # FIXME This should be raised by the function that uses the
        # discharge. --elopio -2016-06-20
        if self.conf.get('unbound_discharge') is None:
            raise errors.InvalidCredentialsError(
                'Unbound discharge not in the config file')

        data = _upload.upload_files(snap_filename, self.updown)
        success = data.get('success', False)
        if not success:
            return data

        result = _upload.upload_app(self.sca, snap_name, data)
        return result
    def test_upload_files_handle_malformed_response(self):
        mock_response = self.mock_post.return_value
        mock_response.json.return_value = {'successful': False}

        response = upload_files(self.binary_file.name)
        err = KeyError('upload_id')
        self.assertEqual(response, {
            'success': False,
            'errors': [str(err)],
        })

        self.mock_progressbar.assert_called_once_with(
            maxval=self.binary_file_size,
            widgets=[
                'Uploading {} '.format(self.binary_file.name), ANY, ' ', ANY
            ])
Example #17
0
    def test_upload_files_error_response(self):
        mock_response = self.mock_post.return_value
        mock_response.ok = False
        mock_response.reason = '500 INTERNAL SERVER ERROR'
        mock_response.text = 'server failed'

        response = upload_files(self.binary_file.name)
        self.assertEqual(response, {
            'success': False,
            'errors': ['server failed'],
        })

        self.mock_progressbar.assert_called_once_with(
            maxval=self.binary_file_size,
            widgets=['Uploading {} '.format(self.binary_file.name), ANY, ' ',
                     ANY])
    def test_upload_files_error_response(self):
        mock_response = self.mock_post.return_value
        mock_response.ok = False
        mock_response.reason = '500 INTERNAL SERVER ERROR'
        mock_response.text = 'server failed'

        response = upload_files(self.binary_file.name)
        self.assertEqual(response, {
            'success': False,
            'errors': ['server failed'],
        })

        self.mock_progressbar.assert_called_once_with(
            maxval=self.binary_file_size,
            widgets=[
                'Uploading {} '.format(self.binary_file.name), ANY, ' ', ANY
            ])
Example #19
0
    def test_upload_files_with_source_upload(self):
        mock_response = self.mock_post.return_value
        mock_response.ok = True
        mock_response.json.return_value = {
            'successful': True,
            'upload_id': 'some-valid-upload-id',
        }

        response = upload_files(self.binary_file.name)
        self.assertEqual(response, {
            'success': True,
            'errors': [],
            'upload_id': 'some-valid-upload-id',
            'binary_filesize': os.path.getsize(self.binary_file.name),
            'source_uploaded': False,
        })

        self.mock_progressbar.assert_called_once_with(
            maxval=self.binary_file_size,
            widgets=['Uploading {} '.format(self.binary_file.name), ANY, ' ',
                     ANY])
    def test_upload_files_with_source_upload(self):
        mock_response = self.mock_post.return_value
        mock_response.ok = True
        mock_response.json.return_value = {
            'successful': True,
            'upload_id': 'some-valid-upload-id',
        }

        response = upload_files(self.binary_file.name)
        self.assertEqual(
            response, {
                'success': True,
                'errors': [],
                'upload_id': 'some-valid-upload-id',
                'binary_filesize': os.path.getsize(self.binary_file.name),
                'source_uploaded': False,
            })

        self.mock_progressbar.assert_called_once_with(
            maxval=self.binary_file_size,
            widgets=[
                'Uploading {} '.format(self.binary_file.name), ANY, ' ', ANY
            ])