Skip to content
This repository has been archived by the owner on Mar 15, 2018. It is now read-only.

Commit

Permalink
Only send FxA mail to users from after guillotine split (bug 1093845)
Browse files Browse the repository at this point in the history
  • Loading branch information
Allen Short authored and mstriemer committed Nov 5, 2014
1 parent 2a7cbc9 commit dad2b38
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 0 deletions.
3 changes: 3 additions & 0 deletions mkt/users/management/commands/fxa_mail.py
@@ -1,3 +1,4 @@
from datetime import datetime
from optparse import make_option

from django.core.management.base import BaseCommand
Expand All @@ -15,13 +16,15 @@

def get_user_ids(is_developers):
developer_ids = (AddonUser.objects
.filter(user__last_login_attempt__gt=datetime(2014, 4, 30))
.values_list('user_id', flat=True)
.distinct())
if is_developers:
return list(developer_ids.exclude(user__source=LOGIN_SOURCE_FXA))

user_ids = (UserProfile.objects
.exclude(source=LOGIN_SOURCE_FXA)
.filter(last_login_attempt__gt=datetime(2014, 4, 30))
.values_list('id', flat=True))
return list(set(user_ids).difference(set(developer_ids)))

Expand Down
13 changes: 13 additions & 0 deletions mkt/users/tests/test_commands.py
@@ -1,3 +1,4 @@
from datetime import datetime
from nose.tools import eq_

import amo.tests
Expand All @@ -15,20 +16,32 @@ def setUp(self):
self.developer = UserProfile.objects.get(pk=31337)

def test_user(self):
self.user.update(last_login_attempt=datetime(2014, 5, 1))
eq_(get_user_ids(False), [999L])
self.user.update(source=LOGIN_SOURCE_FXA)
eq_(get_user_ids(False), [])

def test_stale_user(self):
self.user.update(last_login_attempt=datetime(2014, 4, 30))
eq_(get_user_ids(False), [])

def test_developers(self):
self.developer.update(last_login_attempt=datetime(2014, 5, 1))
eq_(get_user_ids(True), [31337L])
self.developer.update(source=LOGIN_SOURCE_FXA)
eq_(get_user_ids(True), [])

def test_stale_developers(self):
self.developer.update(last_login_attempt=datetime(2014, 4, 30))
eq_(get_user_ids(True), [])

def test_user_filtered_correctly(self):
"""
Ensure that if a developer has used FxA, they get correctly filtered
out for an email sent to users. We do this by setting the FxA source on
the developer before getting developers.
"""
self.user.update(last_login_attempt=datetime(2014, 5, 1))
self.developer.update(last_login_attempt=datetime(2014, 5, 1))
self.developer.update(source=LOGIN_SOURCE_FXA)
eq_(get_user_ids(False), [999L])

0 comments on commit dad2b38

Please sign in to comment.