diff options
-rw-r--r-- | omaha_server/feedback/models.py | 2 | ||||
-rw-r--r-- | omaha_server/feedback/tests/test_views.py | 30 |
2 files changed, 31 insertions, 1 deletions
diff --git a/omaha_server/feedback/models.py b/omaha_server/feedback/models.py index 5e6c67a..29094a3 100644 --- a/omaha_server/feedback/models.py +++ b/omaha_server/feedback/models.py @@ -59,7 +59,7 @@ class Feedback(BaseModel): system_logs = models.FileField(upload_to=logs_upload_to, blank=True, null=True) attached_file = models.FileField(upload_to=attach_upload_to, blank=True, null=True) feedback_data = JSONField(verbose_name='Feedback data', help_text='JSON format', null=True, blank=True) - ip = models.IPAddressField(blank=True, null=True) + ip = models.GenericIPAddressField(blank=True, null=True) created_at = models.DateTimeField(auto_now_add=True, db_index=True) updated_at = models.DateTimeField(auto_now=True) diff --git a/omaha_server/feedback/tests/test_views.py b/omaha_server/feedback/tests/test_views.py index eeae23d..e36366e 100644 --- a/omaha_server/feedback/tests/test_views.py +++ b/omaha_server/feedback/tests/test_views.py @@ -22,6 +22,7 @@ import os from django import test from django.core.urlresolvers import reverse +from django.conf import settings from feedback.models import Feedback @@ -62,6 +63,35 @@ class FeedbackViewTest(test.TestCase): self.assertTrue(obj.feedback_data) self.assertEqual(obj.ip, "8.8.8.8") + def test_view_empty_ip(self): + if settings.DATABASES['default']['ENGINE'] == 'django.db.backends.postgresql_psycopg2': + with open(PB_FILE, 'rb') as f: + body = f.read() + description = 'Testable issue\nwith multiple lines\nof code' + email = 'user@example.com' + page_url = 'chrome://newtab/' + + self.assertEqual(Feedback.objects.all().count(), 0) + response = self.client.post( + reverse('feedback'), + data=body, + content_type='application/x-protobuf', + REMOTE_ADDR="" + ) + self.assertEqual(response.status_code, 200) + self.assertEqual(Feedback.objects.all().count(), 1) + obj = Feedback.objects.get() + self.assertEqual(response.content.decode(), str(obj.pk)) + self.assertEqual(obj.description, description) + self.assertEqual(obj.email, email) + self.assertEqual(obj.page_url, page_url) + self.assertTrue(obj.screenshot) + self.assertTrue(obj.blackbox) + self.assertTrue(obj.system_logs) + self.assertTrue(obj.attached_file) + self.assertTrue(obj.feedback_data) + self.assertEqual(obj.ip, None) + def test_view_desc_only(self): with open(DESC_ONLY_FILE, 'rb') as f: body = f.read() |