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})
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)
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)], })
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)
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)
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
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, })
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 ])
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 ])
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 ])