Integration tests fail

62 views
Skip to first unread message

Chris

unread,
Apr 8, 2011, 5:33:48 PM4/8/11
to Lettuce Developers
Hey,

I cloned the source and set up a virtualenv and tried running the
integration tests and I'm getting broken pipe errors that are causing
integration tests to fail.

Any thoughts?


(lettuce)[chris-czub@cczub lettuce-GIT]$ nosetests tests/integration/
................F
======================================================================
FAIL: serving admin media in django projects that have "admin" in
INSTALLED_APPS
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/chris-czub/.virtualenvs/lettuce/lib/python2.7/site-
packages/nose/case.py", line 187, in runTest
self.test(*self.arg)
File "/home/chris-czub/src/lettuce-GIT/tests/integration/
test_grocery.py", line 29, in test_django_admin_media_serving
assert_equals(status, 0, out)
AssertionError: Traceback (most recent call last):
File "/usr/lib/python2.7/SocketServer.py", line 284, in
_handle_request_noblock
self.process_request(request, client_address)
File "/usr/lib/python2.7/SocketServer.py", line 310, in
process_request
self.finish_request(request, client_address)
File "/usr/lib/python2.7/SocketServer.py", line 323, in
finish_request
self.RequestHandlerClass(request, client_address, self)
File "/home/chris-czub/.virtualenvs/lettuce/lib/python2.7/site-
packages/django/core/servers/basehttp.py", line 570, in __init__
BaseHTTPRequestHandler.__init__(self, *args, **kwargs)
File "/usr/lib/python2.7/SocketServer.py", line 641, in __init__
self.finish()
File "/usr/lib/python2.7/SocketServer.py", line 694, in finish
self.wfile.flush()
File "/usr/lib/python2.7/socket.py", line 301, in flush
self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
Traceback (most recent call last):
File "/usr/lib/python2.7/SocketServer.py", line 284, in
_handle_request_noblock
self.process_request(request, client_address)
File "/usr/lib/python2.7/SocketServer.py", line 310, in
process_request
self.finish_request(request, client_address)
File "/usr/lib/python2.7/SocketServer.py", line 323, in
finish_request
self.RequestHandlerClass(request, client_address, self)
File "/home/chris-czub/.virtualenvs/lettuce/lib/python2.7/site-
packages/django/core/servers/basehttp.py", line 570, in __init__
BaseHTTPRequestHandler.__init__(self, *args, **kwargs)
File "/usr/lib/python2.7/SocketServer.py", line 641, in __init__
self.finish()
File "/usr/lib/python2.7/SocketServer.py", line 694, in finish
self.wfile.flush()
File "/usr/lib/python2.7/socket.py", line 301, in flush
self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
Traceback (most recent call last):
File "/usr/lib/python2.7/SocketServer.py", line 284, in
_handle_request_noblock
self.process_request(request, client_address)
File "/usr/lib/python2.7/SocketServer.py", line 310, in
process_request
self.finish_request(request, client_address)
File "/usr/lib/python2.7/SocketServer.py", line 323, in
finish_request
self.RequestHandlerClass(request, client_address, self)
File "/home/chris-czub/.virtualenvs/lettuce/lib/python2.7/site-
packages/django/core/servers/basehttp.py", line 570, in __init__
BaseHTTPRequestHandler.__init__(self, *args, **kwargs)
File "/usr/lib/python2.7/SocketServer.py", line 641, in __init__
self.finish()
File "/usr/lib/python2.7/SocketServer.py", line 694, in finish
self.wfile.flush()
File "/usr/lib/python2.7/socket.py", line 301, in flush
self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
Preparing to server django's admin site static files...
Django's builtin server is running at 0.0.0.0:7000

Feature: fetch admin media from lettuce + django builtin
server # features/
ability_to_fetch_admin_media.feature:1

Scenario: Running on port
7000 # features/
ability_to_fetch_admin_media.feature:2
Given my settings.py has "LETTUCE_SERVER_PORT" set to
"7000" # features/step_definitions/
grocery_steps.py:14
Then I see that requesting "http://localhost:7000/media/css/
base.css" gets "200" # features/step_definitions/grocery_steps.py:19

Scenario: Fetching CSS
files: # features/
ability_to_fetch_admin_media.feature:6
Given I fetch the
urls: #
features/step_definitions/grocery_steps.py:28
| url |
| /media/css/base.css |
| /media/css/changelists.css |
| /media/css/dashboard.css |
| /media/css/forms.css |
Given I fetch the
urls: #
features/step_definitions/grocery_steps.py:28
| url |
| /media/css/base.css |
| /media/css/changelists.css |
| /media/css/dashboard.css |----
| /media/css/forms.css | of request from ('127.0.0.1',
35349)
| /media/css/ie.css |----
| /media/css/login.css |----
| /media/css/rtl.css | of request from ('127.0.0.1',
35350)
| /media/css/widgets.css |----
When all the responses have status code
200 # features/step_definitions/
grocery_steps.py:41
---------------------------------------- When all the
responses have status code 200 #
features/step_definitions/grocery_steps.py:41
( Then a Then all the responses have mime type "text/
css" # features/step_definitions/
grocery_steps.py:46
'127.0.0.1'
, 35357 Scenario: Fetching javascript
files: # features/
ability_to_fetch_admin_media.feature:20
)
Given I fetch the
urls: #
features/step_definitions/grocery_steps.py:28
Given I fetch the
urls: #
features/step_definitions/grocery_steps.py:28
| url |
| /media/js/actions.js |
| /media/js/calendar.js |
| /media/js/core.js |
| /media/js/dateparse.js |
| /media/js/getElementsBySelector.js |
| /media/js/timeparse.js |
| /media/js/urlify.js |
When all the responses have status code
200 # features/step_definitions/
grocery_steps.py:41
Then all the responses have mime type "application/
javascript" # features/step_definitions/
grocery_steps.py:46
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/lettuce/core.py", line
81, in __call__
ret = self.function(self.step, *args, **kw)
File "/home/chris-czub/src/lettuce-GIT/tests/integration/django/
grocery/features/step_definitions/grocery_steps.py", line 48, in
then_all_the_responses_have_mime_type_group1
assert_equals(content_type, group1, 'failed at %s' % url)
File "/usr/lib/python2.7/unittest/case.py", line 494, in
assertEqual
assertion_func(first, second, msg=msg)
File "/usr/lib/python2.7/unittest/case.py", line 487, in
_baseAssertEqual
raise self.failureException(msg)
AssertionError: failed at http://localhost:7000/media/js/actions.js

1 feature (0 passed)
3 scenarios (2 passed)
8 steps (1 failed, 7 passed)

----------------------------------------------------------------------
Ran 17 tests in 8.311s

FAILED (failures=1)

Chris

unread,
Apr 11, 2011, 5:24:01 PM4/11/11
to Lettuce Developers
I found a solution.

The Django server was serving the JS files as "text/javascript" not
"application/javascript". Changing the tests/integration/django/
grocery/features/ability_to_fetch_admin_media.feature line 31 to be:

31 Then all the responses have mime type "text/javascript"

fixed the issue.

I committed a patch on my branch, I'll submit a pull request?
>     AssertionError: failed athttp://localhost:7000/media/js/actions.js
Reply all
Reply to author
Forward
0 new messages