def test_url(app): storage = fs.Storage('test') app.configure(storage) expected_url = url_for('fs.get_file', fs=storage.name, filename='test.txt') assert storage.url('test.txt') == expected_url
def test_path(self, mock_backend): storage = fs.Storage('test') backend = mock_backend.return_value backend.root = '/root' self.configure(storage) self.assertEqual(storage.path('file.test'), '/root/file.test')
def test_path(app, mock_backend): storage = fs.Storage('test') backend = mock_backend.return_value backend.root = '/root' app.configure(storage) assert storage.path('file.test') == '/root/file.test'
def test_no_root(app, mock_backend): storage = fs.Storage('test') backend = mock_backend.return_value backend.root = None app.configure(storage, SERVER_NAME='somewhere') assert storage.root is None
def test_read(app, mock_backend): storage = fs.Storage('test') app.configure(storage) backend = mock_backend.return_value backend.read.return_value = 'content' assert storage.read('file.test') == 'content'
def test_list_files(app, mock_backend): storage = fs.Storage('test') backend = mock_backend.return_value backend.list_files.return_value = ['one.txt'] app.configure(storage) assert storage.list_files() == ['one.txt']
def test_url(self): storage = fs.Storage('test') self.configure(storage) with self.app.test_request_context('/'): expected_url = url_for('fs.get_file', fs=storage.name, filename='test.txt') self.assertEqual(storage.url('test.txt'), expected_url)
def test_path_not_supported(app, mock_backend): storage = fs.Storage('test') backend = mock_backend.return_value backend.root = None app.configure(storage) with pytest.raises(fs.OperationNotSupported): storage.path('file.test')
def test_no_root(self, mock_backend): storage = fs.Storage('test') backend = mock_backend.return_value backend.root = None self.configure(storage, SERVER_NAME='somewhere') with self.app.app_context(): self.assertIsNone(storage.root)
def test_read_not_found(self, mock_backend): storage = fs.Storage('test') self.configure(storage) backend = mock_backend.return_value backend.exists.return_value = False with self.app.app_context(), self.assertRaises(fs.FileNotFound): storage.read('file.test')
def test_path_not_supported(self, mock_backend): storage = fs.Storage('test') backend = mock_backend.return_value backend.root = None self.configure(storage) with self.assertRaises(fs.OperationNotSupported): storage.path('file.test')
def test_write_file_exists(app, mock_backend): storage = fs.Storage('test') app.configure(storage) backend = mock_backend.return_value backend.exists.return_value = True with pytest.raises(fs.FileExists): storage.write('file.test', 'content')
def test_write_overwritable(app, mock_backend): storage = fs.Storage('test', overwrite=True) app.configure(storage) backend = mock_backend.return_value storage.write('file.test', 'content') backend.write.assert_called_with('file.test', 'content')
def test_read(self, mock_backend): storage = fs.Storage('test') self.configure(storage) backend = mock_backend.return_value backend.read.return_value = 'content' with self.app.app_context(): self.assertEqual(storage.read('file.test'), 'content')
def test_read_not_found(app, mock_backend): storage = fs.Storage('test') app.configure(storage) backend = mock_backend.return_value backend.exists.return_value = False with pytest.raises(fs.FileNotFound): storage.read('file.test')
def test_delete(app, mock_backend): storage = fs.Storage('test') app.configure(storage) backend = mock_backend.return_value storage.delete('test.txt') backend.delete.assert_called_with('test.txt')
def test_write_file_exists(self, mock_backend): storage = fs.Storage('test') self.configure(storage) backend = mock_backend.return_value backend.exists.return_value = True with self.app.app_context(): with self.assertRaises(fs.FileExists): storage.write('file.test', 'content')
def test_write(app, mock_backend): storage = fs.Storage('test') app.configure(storage) backend = mock_backend.return_value backend.exists.return_value = False storage.write('file.test', 'content') backend.exists.assert_called_with('file.test') backend.write.assert_called_with('file.test', 'content')
def test_write_overwrite(self, mock_backend): storage = fs.Storage('test') self.configure(storage) backend = mock_backend.return_value with self.app.app_context(): storage.write('file.test', 'content', overwrite=True) backend.write.assert_called_with('file.test', 'content')
def test_open_read_not_found(self, mock_backend): storage = fs.Storage('test') self.configure(storage) backend = mock_backend.return_value backend.exists.return_value = False with self.assertRaises(fs.FileNotFound): with storage.open('file.test'): pass
def setUp(self): super(MongoEngineTestCase, self).setUp() self.app.config['MONGODB_SETTINGS'] = {'DB': 'flask_fs_tests'} self._instance_path = self.app.instance_path self.app.instance_path = tempfile.mkdtemp() self.storage = fs.Storage('test', fs.ALL) fs.init_app(self.app, self.storage) db.init_app(self.app) self._ctx = self.app.test_request_context() self._ctx.push()
def test_delete(self, mock_backend): storage = fs.Storage('test') self.configure(storage) backend = mock_backend.return_value with self.app.app_context(): storage.delete('test.txt') backend.delete.assert_called_with('test.txt')
def test_get_file_not_found(app, mock_backend): storage = fs.Storage('test') backend = mock_backend.return_value backend.exists.return_value = False app.configure(storage) file_url = url_for('fs.get_file', fs='test', filename='test.txt') response = app.test_client().get(file_url) assert response.status_code == 404
def test_url_from_config_with_scheme(self): http = fs.Storage('http') https = fs.Storage('https') self.configure(http, https, HTTP_FS_URL='http://somewhere.com/static', HTTPS_FS_URL='https://somewhere.com/static' ) with self.app.app_context(): self.assertEqual(http.url('test.txt'), 'http://somewhere.com/static/test.txt') self.assertEqual(https.url('test.txt'), 'https://somewhere.com/static/test.txt') with self.app.test_request_context(environ_overrides={'wsgi.url_scheme': 'http'}): self.assertEqual(http.url('test.txt'), 'http://somewhere.com/static/test.txt') self.assertEqual(https.url('test.txt'), 'https://somewhere.com/static/test.txt') with self.app.test_request_context(environ_overrides={'wsgi.url_scheme': 'https'}): self.assertEqual(http.url('test.txt'), 'http://somewhere.com/static/test.txt') self.assertEqual(https.url('test.txt'), 'https://somewhere.com/static/test.txt')
def test_open_write_new_file(app, mock_backend): storage = fs.Storage('test') app.configure(storage) backend = mock_backend.return_value backend.open.return_value = io.StringIO('content') with storage.open('file.test', 'w') as f: f.write('test') backend.open.assert_called_with('file.test', 'w')
def test_open(app, mock_backend): storage = fs.Storage('test') app.configure(storage) backend = mock_backend.return_value backend.open.return_value = io.StringIO('content') with storage.open('file.test') as f: assert f.read() == 'content' backend.open.assert_called_with('file.test', 'r')
def test_open(self, mock_backend): storage = fs.Storage('test') self.configure(storage) backend = mock_backend.return_value backend.open.return_value = io.StringIO('content') with storage.open('file.test') as f: self.assertEqual(f.read(), 'content') backend.open.assert_called_with('file.test', 'r')
def test_save_file_exists(app, mock_backend, utils, faker): storage = fs.Storage('test') app.configure(storage) f = utils.file(faker.binary()) backend = mock_backend.return_value backend.exists.return_value = True with pytest.raises(fs.FileExists): storage.save(f, 'test.png')
def storage(self, app, tmpdir): app.instance_path = str(tmpdir) storage = fs.Storage('test', fs.ALL) fs.init_app(app, storage) db.init_app(app) yield storage with app.test_request_context(): db_name = app.config['MONGODB_DB'] try: db.connection.client.drop_database(db_name) except TypeError: db.connection.drop_database(db_name)
def test_get_file(app, mock_backend): storage = fs.Storage('test') backend = mock_backend.return_value backend.serve.return_value = 'content'.encode('utf-8') app.configure(storage) file_url = url_for('fs.get_file', fs='test', filename='test.txt') response = app.test_client().get(file_url) assert response.status_code == 200 assert response.data == 'content'.encode('utf-8')