Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
    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')
Ejemplo n.º 3
0
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'
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
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'
Ejemplo n.º 6
0
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']
Ejemplo n.º 7
0
    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)
Ejemplo n.º 8
0
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')
Ejemplo n.º 9
0
    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)
Ejemplo n.º 10
0
    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')
Ejemplo n.º 11
0
    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')
Ejemplo n.º 12
0
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')
Ejemplo n.º 13
0
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')
Ejemplo n.º 14
0
    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')
Ejemplo n.º 15
0
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')
Ejemplo n.º 16
0
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')
Ejemplo n.º 17
0
    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')
Ejemplo n.º 18
0
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')
Ejemplo n.º 19
0
    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')
Ejemplo n.º 20
0
    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
Ejemplo n.º 21
0
 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()
Ejemplo n.º 22
0
    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')
Ejemplo n.º 23
0
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
Ejemplo n.º 24
0
    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')
Ejemplo n.º 25
0
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')
Ejemplo n.º 26
0
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')
Ejemplo n.º 27
0
    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')
Ejemplo n.º 28
0
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')
Ejemplo n.º 29
0
 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)
Ejemplo n.º 30
0
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')