On 1/3/20 7:57 AM, ritwik p wrote:
> The mentioned issue: https://gitlab.com/mailman/mailman/issues/553
> 
> So, the line 65 in `eml_confirm.py` in `/src/mailman/commands/` 
> which raises the error is `assert member is None, member`
> 
> Basically what this line is doing is checking if the `member` is `None` or 
> not and if it ISN'T,  it raises an Assertion Error with member details 
> printed.
> According to the comments (line 57-60) in the same file, member would be 
> `None` when there's an unsubscription, but here it is NOT None (idk why).


Because the comment is backwards.


> 2 pretty simple ways of dealing with this will be:
> - commenting the line
> - adding an `except AssertionError` line
> 
> But these won't solve the root problem, i.e why is the member NOT None.


because member exists when when we are unsubscribing a member and member
doesn't yet exist when we are subscribing a new member.

The comment `We can't assert anything about member.` actually applies to
all the conditions, not just `if new_token is None:`

The point is that the comment is wrong and also that

elif token_owner is TokenOwner.moderator:
     # This must have been a confirm-then-moderator subscription.

is wrong because it could also be a confirm-then-moderate unsubscription

> I'm currently looking a bit more into it but,
> How should I proceed with this??


Create some additional tests for unsubscription when policy is
confirm_then_moderate that will fail on the `assert member is None`.

Once you are satisfied that you are testing all the combinations of
subscribe/unsubscribe and policy confirm with and without moderate, fix
the code so the tests pass.


> Also, couple of doubts:
> - How can a moderator confirm the unsubscription request??

Usually, through the Postorius web UI, but also by email, and you need
to be sure that's tested too.

> - For the tables `user` and `member` in `mailman.db` file in 
> `mailman/var/data/`, when a person unsubscribes from a list, the entry of 
> that member is deleted from the `member` table but not from `user` table. Is 
> it due to the fact that even if the person is not a member, they can still be 
> user??

Yes. The user could be a member of other lists, but even if not the user
remains. This is the subject of
<https://gitlab.com/mailman/mailman/issues/646>.

-- 
Mark Sapiro <m...@msapiro.net>        The highway is for gamblers,
San Francisco Bay Area, California    better use your sense - B. Dylan
_______________________________________________
Mailman-Developers mailing list -- mailman-developers@python.org
To unsubscribe send an email to mailman-developers-le...@python.org
https://mail.python.org/mailman3/lists/mailman-developers.python.org/
Mailman FAQ: https://wiki.list.org/x/AgA3

Security Policy: https://wiki.list.org/x/QIA9

Reply via email to