#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 [email protected].
To post to this group, send email to [email protected].
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.

Reply via email to