From dad2b384df893eb91a48cbe965f2356f503a8eff Mon Sep 17 00:00:00 2001 From: Allen Short Date: Tue, 4 Nov 2014 23:39:47 -0800 Subject: [PATCH] Only send FxA mail to users from after guillotine split (bug 1093845) --- mkt/users/management/commands/fxa_mail.py | 3 +++ mkt/users/tests/test_commands.py | 13 +++++++++++++ 2 files changed, 16 insertions(+) diff --git a/mkt/users/management/commands/fxa_mail.py b/mkt/users/management/commands/fxa_mail.py index 60d18a9ef21..ef6cb866962 100644 --- a/mkt/users/management/commands/fxa_mail.py +++ b/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 @@ -15,6 +16,7 @@ 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: @@ -22,6 +24,7 @@ def get_user_ids(is_developers): 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))) diff --git a/mkt/users/tests/test_commands.py b/mkt/users/tests/test_commands.py index 2dae241740c..b90208ae31d 100644 --- a/mkt/users/tests/test_commands.py +++ b/mkt/users/tests/test_commands.py @@ -1,3 +1,4 @@ +from datetime import datetime from nose.tools import eq_ import amo.tests @@ -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])