summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--omaha_server/feedback/models.py2
-rw-r--r--omaha_server/feedback/tests/test_views.py30
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()