def test_send_notification(self): with override_service('metrics', FakeMetrics): user = create_staff() pn = self.api_post('/api/staff/send_notification_email', { 'action': 'digest', 'username': user.username, }, user=create_staff()) self.assertAPISuccess(pn) self.assertEqual(1, len(Services.metrics.email_sent.records))
def test_as_staff(self): group = create_group() user = create_staff() cmt = self.post_comment(reply_content=create_content().id, category=group.name) self.assertFalse(cmt.is_offtopic()) result = self.api_post('/api/comment/mark_offtopic', { 'comment_id': cmt.id, 'ot_hidden': True }, user=user) self.assertAPIFailure(result) group.moderators.add(user) result = self.api_post('/api/comment/mark_offtopic', { 'comment_id': cmt.id, 'ot_hidden': True }, user=user) self.assertAPISuccess(result) cmt = Comment.all_objects.get(pk=cmt.pk) self.assertTrue(cmt.is_offtopic()) # Now undo it. result = self.api_post('/api/comment/mark_offtopic', { 'comment_id': cmt.id, 'ot_hidden': False }, user=user) cmt = Comment.objects.get(pk=cmt.pk) self.assertFalse(cmt.is_offtopic())
def test_page_loads_with_feed_item(self): user = create_staff() other = create_user() user.follow(other) create_comment(author=other, reply_content=create_content()) self.assertStatus(200, '/feed', user=user)
def after_setUp(self): self.ip = '13.33.33.7' IPBlock.objects.create( ip=self.ip, moderator=create_staff(), timestamp=Now(), ) self.request = FakeRequest() self.request.META['REMOTE_ADDR'] = self.ip
def post(cls, path, data=None): # TODO: get rid of this when the api doesnt require staff user = create_staff() data = util.dumps(data) if data else None return cls._http_verb('post', path, data=data, user=user, content_type='application/json')
def test_send_email_happens_once_per_recipient(self): with override_service('time', FakeTimeProvider): user = create_staff() Services.time.step(60*60*24) (recipient,) = send_24h_email.recipients() self.assertEqual(recipient, user) with override_service('metrics', FakeMetrics): def send(): for user in send_24h_email.recipients(): send_24h_email.send_welcome_email(user) self.assertEqual(0, len(Services.metrics.email_sent.records)) send() self.assertEqual(1, len(Services.metrics.email_sent.records), "The digest email wasn't sent.") send() self.assertEqual(1, len(Services.metrics.email_sent.records), "The email was sent twice.")
def test_as_staff(self): group = create_group() user = create_staff() cmt = self.post_comment(reply_content=create_content().id, category=group.name) self.assertFalse(cmt.is_offtopic()) result = self.api_post('/api/comment/mark_offtopic', {'comment_id': cmt.id, 'ot_hidden': True}, user=user) self.assertAPIFailure(result) group.moderators.add(user) result = self.api_post('/api/comment/mark_offtopic', {'comment_id': cmt.id, 'ot_hidden': True}, user=user) self.assertAPISuccess(result) cmt = Comment.all_objects.get(pk=cmt.pk) self.assertTrue(cmt.is_offtopic()) # Now undo it. result = self.api_post('/api/comment/mark_offtopic', {'comment_id': cmt.id, 'ot_hidden': False}, user=user) cmt = Comment.objects.get(pk=cmt.pk) self.assertFalse(cmt.is_offtopic())
def test_send_email_happens_once_per_recipient(self): with override_service('time', FakeTimeProvider): user = create_staff() Services.time.step(60 * 60 * 24) (recipient, ) = send_24h_email.recipients() self.assertEqual(recipient, user) with override_service('metrics', FakeMetrics): def send(): for user in send_24h_email.recipients(): send_24h_email.send_welcome_email(user) self.assertEqual(0, len(Services.metrics.email_sent.records)) send() self.assertEqual(1, len(Services.metrics.email_sent.records), "The digest email wasn't sent.") send() self.assertEqual(1, len(Services.metrics.email_sent.records), "The email was sent twice.")
def after_setUp(self): self.user = create_staff()
def create_staff(*args, **kwargs): return canvas_tests_helpers.create_staff(*args, user_cls=User, **kwargs)
def test_staff_with_staff(self): request = FakeRequest(user=create_staff()) response = self.require_staff(request) self.assertEqual(response.status_code, 200)
def get(self, *args, **kwargs): # TODO: get rid of this when the api doesnt require staff kwargs['user'] = create_staff() return CanvasTestCase.get(*args, **kwargs)
def test_staff_exemption(self): self._test_rate_limit(create_staff(), True)
def test_through_full_django_stack(self): self.assertRaises(TypeError, lambda: self.post("/staff/noop", user=create_staff()))
def test_staff_can_disable_group(self): staff_user, group = create_staff(), create_group() self.assertTrue(group.can_disable(staff_user))
def test_staff_cannot_moderate_group(self): staff_user, group = create_staff(), create_group() self.assertFalse(group.can_moderate(staff_user))
def test_page_loads(self): self.assertStatus(200, '/feed', user=create_staff())
def after_setUp(self): self.user = create_user() self.staff = create_staff() self.ip = '1.3.3.7' self.request = FakeRequest() self.request.META['REMOTE_ADDR'] = self.ip