def test_addon(self): report = AbuseReport(addon_id=3615) assert ( unicode(report) == u'[Extension] Abuse Report for Delicious Bookmarks') report.send() assert ( mail.outbox[0].subject == u'[Extension] Abuse Report for Delicious Bookmarks') assert 'addon/a3615' in mail.outbox[0].body
def test_guid(self): report = AbuseReport(guid='*****@*****.**') report.send() assert ( unicode(report) == u'[Addon] Abuse Report for [email protected]') assert ( mail.outbox[0].subject == u'[Addon] Abuse Report for [email protected]') assert 'GUID not in database' in mail.outbox[0].body
def test_addon_fr(self): with self.activate(locale='fr'): report = AbuseReport(addon_id=3615) assert ( unicode(report) == u'[Extension] Abuse Report for Delicious Bookmarks') report.send() assert ( mail.outbox[0].subject == u'[Extension] Abuse Report for Delicious Bookmarks')
def test_user(self): report = AbuseReport(user_id=999) report.send() assert ( unicode(report) == u'[User] Abuse Report for regularuser التطب') assert ( mail.outbox[0].subject == u'[User] Abuse Report for regularuser التطب') assert 'user/regularuser' in mail.outbox[0].body assert mail.outbox[0].to == [settings.ABUSE_EMAIL]
def to_internal_value(self, data): output = super(BaseAbuseReportSerializer, self).to_internal_value(data) request = self.context['request'] output['country_code'] = AbuseReport.lookup_country_code_from_ip( request.META.get('REMOTE_ADDR')) if request.user.is_authenticated: output['reporter'] = request.user return output
def handle(self, *args, **kwargs): self.setup_check() qs = AbuseReport.objects.only('ip_address', 'country_code').filter( ip_address__isnull=False, country_code__isnull=True) for report in qs: log.info('Looking up country_code for abuse report %d', report.pk) value = AbuseReport.lookup_country_code_from_ip(report.ip_address) report.update(country_code=value)
def test_user_report(self): user = user_factory() report = AbuseReport(user=user, message='bad stuff') serialized = self.serialize(report) serialized_user = BaseUserSerializer(user).data assert serialized == { 'reporter': None, 'user': serialized_user, 'message': 'bad stuff', }
def test_guid_report(self): report = AbuseReport(guid='@guid', message='bad stuff') serial = self.serialize(report) assert serial == { 'reporter': None, 'addon': { 'guid': '@guid', 'id': None, 'slug': None }, 'message': 'bad stuff' }
def test_addon_report(self): addon = addon_factory(guid='@guid') report = AbuseReport(addon=addon, message='bad stuff') serial = self.serialize(report) assert serial == { 'reporter': None, 'addon': { 'guid': addon.guid, 'id': addon.id, 'slug': addon.slug }, 'message': 'bad stuff' }
def test_lookup_country_code_from_ip(self, GeoIP2_mock): GeoIP2_mock.return_value.country_code.return_value = 'ZZ' assert AbuseReport.lookup_country_code_from_ip('') == '' assert AbuseReport.lookup_country_code_from_ip('notanip') == '' assert GeoIP2_mock.return_value.country_code.call_count == 0 GeoIP2_mock.return_value.country_code.return_value = 'ZZ' assert AbuseReport.lookup_country_code_from_ip('127.0.0.1') == 'ZZ' assert AbuseReport.lookup_country_code_from_ip('::1') == 'ZZ' GeoIP2_mock.return_value.country_code.side_effect = GeoIP2Exception assert AbuseReport.lookup_country_code_from_ip('127.0.0.1') == '' GeoIP2_mock.return_value.country_code.side_effect = GeoIP2Error assert AbuseReport.lookup_country_code_from_ip('127.0.0.1') == ''
def test_user(self): AbuseReport(user_id=999).send() assert mail.outbox[0].subject.startswith('[User]') assert mail.outbox[0].to == [settings.ABUSE_EMAIL]
def setup_check(self): value = AbuseReport.lookup_country_code_from_ip('1.1.1.1') if not value: raise CommandError('GeoIP lookups does not appear to be working.')
def test_addon_fr(self): with self.activate(locale='fr'): AbuseReport(addon_id=3615).send() assert mail.outbox[0].subject.startswith('[Extension]')
def test_type_unknown_addon_type(self): report = AbuseReport(addon_id=3615) report.addon.type = -42 # Obviously that type isn't valid. assert report.type == 'Addon' # Doesn't fail.
def test_addon(self): AbuseReport(addon_id=3615).send() assert mail.outbox[0].subject.startswith('[Extension]')