Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
In the constructor values already is normalized (i.e. with underscores),
while kwargs contains items that are not normalized (i.e. with dashes).
Joining the dicts resulted in two entries that only differed by dash or
underscores. The setattr then set the value that occurred later in
items, thereby sometimes overriding the correct value with the default
one.
|
|
The get_raw_docs method accesses header field content-transfer-encoding
using the string 'content-transfer-type' so the raw doc dict always ends
up with that value set to empty string.
|
|
--use-leap-wheels sets --trusted-host (remove it when we have a proper
cert) and WHEELHOUSE to https://ftp.lizard.leap.se
Until we get ftp.lizard cname, use lizard as the wheels server.
- Related: #7339
|
|
|
|
This test was not updated for a while and it doesn't make sense
in this context, when we create acceptance tests we can make sure
we cover this feature
The issue for acceptance tests is:
https://leap.se/code/issues/7341
|
|
Functionality that is not implemented should not fail, instead
it should be skipped until it is implemented.
Added a return to test_imap_store_fetch setup to make sure the deferred
is being handled
|
|
Added requirements-latest to make sure we always use the
latest develop of all dependencies in an automated way
|
|
generate_wheels uses $WHEELHOUSE to generate and store the wheels for
requirements.pip and requirements-testing.pip (if it exists).
pip_install_requirements.sh installs requirements.pip from them if
possible (if not, then it fetches them from pypi) or, if passed the
--testing flag, it installs requirements-testing.pip.
Related: #7327
|
|
|
|
The lambdas take two args, so it needs to be a tuple.
Furthermore filter needs a collection.
|
|
- update pip
- install base reqs
|
|
|
|
this is part of a process to make the setup of the development mode less
troublesome. from now on, setting up a virtualenv in pure development
mode will be as easy as telling pip to just install the external
dependencies::
pip install -r pkg/requirements.pip
and traversing all the leap repos for the needed leap dependencies doing::
python setup.py develop
- Related: #7288
|
|
|
|
of pep8
|
|
sync_hooks to lambdas to real functions
|
|
|
|
|
|
This is quite manual for the moment being, and it's not integrated into
the unittests. But it is useful to have it documented, with some luck we
can automate the process even more and add it to the CI quite soon.
|
|
in order to start with a fresh folder each time.
current test script has some troubles with dirty state.
|
|
|
|
For #7244, this is needed for regression tests
|
|
|
|
|
|
this is just the bare minimum implementation of MSN (message sequence
numbers). It is not enough feature-wise, but I'm doing it now just to
support testing with the default imap client that we're using with the
regression tests.
|
|
In the case of a message with just one non-text attachment, something
has to be returned for the body payload. (For instance, a message with
only one image).
|
|
|
|
The decission to index the pending_inserts dict by message-id is a bit
brittle. I assume any well-formed message in the RealWorld (tm) will
have this header, but many samples used in the tests will break this
assumption.
|
|
For some reason that I haven't discovered yet, nested multipart is
hitting an off-by-one error (that had been wrongly ammended in a
previous commit, breaking many other cases but fixing the particular
Mail.app sample I was working with). This is just a temporary hack
to make all the current regression tests happy, but further
investigation is needed to discover the cause of the off-by-one part
retrieval solved and correctly documented.
|
|
This commit fix a very simplistic and until now broken handling of
nested multipart that went undetected due to the structure of the mails
used in tests until now. Incidentally, the way that Mail.app structures
attachments made this bug noticeable.
There was also an off-by-one indexing error when retrieving the subpart
message for a given subpart.
Be aware that the current implementation will only handle correctly 2
levels of multipart nesting. Extending beyond in a more generic way will
need further work.
Closes: #7244
|
|
|
|
|
|
When copying emails there was not notification produced, that makes
thunderbird to see messages moved between folders until it gets
restarted. Now the MaillCollection copy does notify the listeners.
* Resolves: #7158
|
|
MessageCollection.add_msg was not returning the uid of the message added
making the incoming service not deleting the emails from the incoming
queue.
* Related: #7158
|
|
The tests where writting their own implementation of env tear down
instead of using leap.common's one. Using it fixes many tests.
|
|
in a previous refactor, we decoupled the incoming mail service from the
IMAP layer. However, this left the IMAPMailbox unable to react to
changes in the underlying collection when a new message is inserted.
in this commit, we add a Listener mechanism to the collection itself, so
that IMAPMailbox (and any other object that uses it) can subscribe to
changes on the number of messages of the collection.
Resolves: #7191
Releases: 0.4.0
|
|
in a previous commit, there was a bug inserted in which a key lookup was
being made unconditionally, even when the pending_insert_docs was None.
Releases: 0.4.0
|
|
Although this draft-saving feature seems to be somehow brittle, since it
breaks from time to time, the causes are different and subtle on each
case.
This time the bug is related to having the notify_just_mdoc (or
fast_notifies as I'm tempted to call it in the future for more clarity)
set to True by default in the APPENDS.
Fast notifies break the "save draft" functionality because what
Thunderbird does is an Append of the newest message, followed by
deletion of the old message and a SEARCH by Message-ID. For this we need
the headers-doc to be already inserted in the store.
Since the fast-notify makes a *big* difference in terms of insertion
times for serialized appends, I've opted for using a heuristic for
detecting if it's the case of a Draft message, using a mozilla-specific
header. If this is found, we set the notify_just_mdoc unconditionally to
False. We'll deal with other MUAs on its due time.
Releases: 0.4.0
|
|
the bug consist on a fetch-while-pending-inserts hanging. the pending
insert dict was not being cleaned up because the lookup for the
Message-Id *is* case-sensitive (in the headers dict).
by using a temporary all-keys-lowercase dict the lookup can be performed
right, and the fetch returns successfully.
at this point there's still a pending bug with Drafts, and it is that
the new version is inserted but the MUA (TB) doesn't hide the older
version (although a Delete flag is added).
Resolves: #7189, #7190
Releases: 0.4.0
|
|
- Add errback handling to catch properly errors that were not allowing
the complete insertion of the parts for a given message. Fixes blank
attachments and moving of messages to different folders.
- Force overwritting of mdoc when it is a copy. This was avoiding a
message to be copied back to a folder from where it already had been
copied to another (since the mdoc was already existing there, with the
same doc_id, which was forbidding the creation of the new one).
This case also needs special care in the indexer, since we have to
delete the old hash entry first.
Closes: #7178, #7158
|
|
|
|
Closes: #7169.
|
|
|
|
because we love to test with mutt.
|
|
|
|
before, we were taking the length of a string, signalling an incorrect
number to the ui.
currently this event is not being used, just only logged. in the future
the ui could probably might want to make use of this info to keep record
of a separate counter (how many mails received in the last sync).
|
|
|