def test_valid_id(self): """If the given banner id is valid, increment the click count.""" banner = FacebookBannerInstanceFactory(total_clicks=0) add_click(banner.id) banner_instance = FacebookBannerInstance.objects.get(id=banner.id) eq_(banner_instance.total_clicks, 1) stats = FacebookClickStats.objects.get(banner_instance=banner_instance) eq_(stats.clicks, 1)
def test_click_milestones(self): """If the new click count is a click milestone, send a notification.""" instance = FacebookBannerInstanceFactory.create(total_clicks=3) add_click(instance.id) eq_(len(instance.user.appnotification_set.all()), 0) add_click(instance.id) eq_(len(instance.user.appnotification_set.all()), 1) notification = instance.user.appnotification_set.all()[0] eq_(notification.message, 'test') eq_(notification.format_argument, '5')
def test_admin_email(self): """ If the banner instance has just reached the click goal, email the admin. """ instance = FacebookBannerInstanceFactory.create(total_clicks=29) add_click(instance.id) eq_(len(mail.outbox), 1) eq_(mail.outbox[0].subject, ('[fb-affiliates-banner] Click Goal ' 'Reached!')) ok_(unicode(instance.id) in mail.outbox[0].body) ok_('*****@*****.**' in mail.outbox[0].to)
def test_invalid_id(self, get_or_create): """If the given banner id is invalid, do nothing.""" add_click(999) ok_(not get_or_create.called)