Opened 7 years ago
Last modified 7 years ago
#29305 closed Bug
GET or POST requests outside of the browser to the LiveServerTestCase hang — at Initial Version
Reported by: | Santiago García | Owned by: | nobody |
---|---|---|---|
Component: | Testing framework | Version: | 1.11 |
Severity: | Normal | Keywords: | Test |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
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:
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:
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.