Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
Add a DELETE method for blobs server and integrate it into client's
BlobManager.
- Resolves: #8846
|
|
- Related: #8846
|
|
|
|
|
|
|
|
|
|
Check if user and blob_id are valid strings, then check if the resulting
path is a subdirectory of blobs configured path.
- Related: #8800
|
|
- Related: #8812
|
|
BlobManager tests covers them indirectly, but testing them directly may
help locating source of bugs.
- Related: #8812
|
|
- Related: #8812
|
|
- Related: #8812
|
|
We can't let the local DB try an isertion before making sure doc isn't
already there.
- Resolves: #8845
|
|
|
|
|
|
|
|
_validate will check if user_id and blob_id are letter, numbers, dashes
and underscores. It is called on render_GET and render_POST, validating
incoming arguments before handling on backend.
- Resolves: #8832
|
|
This makes process communication async during quota measurement, as
specified on #8832
- Related: #8832
|
|
During a meeting with pixelated we were asked to ensure that the u1db
revision system was working for the shared database. This commit adds a
test to make sure that documents in the shared database can be updated
successfully if the include the correct revision, but will fail if the
include the incorrect revision.
Resolves: #8842.
|
|
SQLCipher synchronous benchmark tests were introduced when we started
developing benchmark tests to compare synchronous and asynchronous code.
Synchronous access to sqlcipher database is not used in soledad, and
those tests are much slower than asynchronous tests (more than 10 times
using ssd drive), so we want to avoid running them on ci. This commit
introduces a "synchronous" marker and avoid running tests markes as such
in ci environment.
|
|
There were some changes needed in pytest-benchmark so we could
successfully use it for soledad benchmarks graphing:
https://github.com/ionelmc/pytest-benchmark/pull/73
https://github.com/ionelmc/pytest-benchmark/pull/74
https://github.com/ionelmc/pytest-benchmark/pull/75
The contributions were accepted but not released yet, so this commit
uses the code from upstream git repository's master branch.
|
|
|
|
|
|
|
|
Check what server has, what we have, compare, fetch missing.
- Related: #8808
|
|
|
|
This method will gather a list of local docs and a list of remote docs,
compare them and send docs which server doesn't have.
- Related: #8807
|
|
The debian package for libsqlcipher does not enable the use of usleep(),
and that might cause timeouts when doing concurrent access to sqlcipher
databases.
See: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=859685
In benchmark tests we use twisted's asynchronous dbapi for creating
thousands of documents, and if usleep() is not enabled this operation is
very likelly to fail with a "db is locked" error.
This commit adds a workaround for benchmark tests by reinstalling
pysqlcipher with the "--bundled" option, what causes libsqlcipher to be
built and bundled in the python package, with usleep() enabled.
Resolves: #8835
|
|
doc_id wasn't being stored, loaded or used anywhere except for
authentication. This commit removes it and uses a fixed value for rev
since blobs is supposed to be immutable.
- Resolves: #8813
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Downloading until there is a space then splitting the content was a
mess. Extracted this behaviour out of DecrypterBuffer into a new
component so it eases testing by introducing a single responsibility
class.
|
|
|
|
Raising was generating 500, which is a generic status code for server
side errors. This commit adds proper status code of 409 while handling
the error on client side by translating the code into a proper exception
class.
|
|
|
|
Caching .tox breaks when installing new dependencies. Caching pip
instead and asking tox to always recreate will ensure newer dependencies
are installed while getting existing ones from cache.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|