#29305: GET or POST requests outside of the browser to the LiveServerTestCase hang -----------------------------------+-------------------------------------- Reporter: Santiago García | Owner: nobody Type: Bug | Status: new Component: Testing framework | Version: 1.11 Severity: Normal | Resolution: Keywords: Test | Triage Stage: Unreviewed Has patch: 0 | Needs documentation: 0 Needs tests: 0 | Patch needs improvement: 0 Easy pickings: 0 | UI/UX: 0 -----------------------------------+-------------------------------------- Description changed by Santiago García:
Old description: > We have an integration test where we start two separate Django processes > and the second process makes a POST request to the first process with the > requests library. This testcase broke once we upgraded to Django 1.11, > while it still worked in Django 1.10. > > To reproduce the issue: > > - Create a simple Django app. > - Install selenium and requests > - Add a testcase like so: > > {{{#!python > import time > > from django.contrib.staticfiles.testing import StaticLiveServerTestCase > from django.urls import reverse > from selenium import webdriver > > class TestExample(StaticLiveServerTestCase): > def test_example(self): > driver = webdriver.Chrome() > driver.get(self.live_server_url + reverse('admin:index')) > # wait "forever" > time.sleep(60 * 60 * 24) > }}} > > I.e it just opens the admin page, then waits for 24 hours. In a Python > console, type the following: > > {{{#!python > import requests > requests.get('http://localhost:47256/admin') > }}} > > and you will see that the request hangs indefinitely. Interestingly, it > sometimes helps to press refresh in the Chrome window spawned by > Selenium. New description: We have an integration test where we start two separate Django processes and the second process makes a POST request to the first process with the requests library. This testcase broke once we upgraded to Django 1.11, while it still worked in Django 1.10. To reproduce the issue: - Create a simple Django app. - Install selenium and requests - Add a testcase like so: {{{#!python import time from django.contrib.staticfiles.testing import StaticLiveServerTestCase from django.urls import reverse from selenium import webdriver class TestExample(StaticLiveServerTestCase): def test_example(self): driver = webdriver.Chrome() driver.get(self.live_server_url + reverse('admin:index')) # wait "forever" time.sleep(60 * 60 * 24) }}} I.e it just opens the admin page, then waits for 24 hours. In a Python console, type the following: {{{#!python import requests requests.get('http://localhost:47256/admin') # replace 47256 with whatever port number the LiveServerTestCase picked }}} and you will see that the request hangs indefinitely. Interestingly, it sometimes helps to press refresh in the Chrome window spawned by Selenium. -- -- Ticket URL: <https://code.djangoproject.com/ticket/29305#comment:1> Django <https://code.djangoproject.com/> The Web framework for perfectionists with deadlines. -- You received this message because you are subscribed to the Google Groups "Django updates" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-updates+unsubscr...@googlegroups.com. To post to this group, send email to django-updates@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/075.a45ae1a97dac11a96ead62c69fb072cc%40djangoproject.com. For more options, visit https://groups.google.com/d/optout.