An update on progress:
Ran 709 tests in 269.906s
FAILED (failures=1, errors=277)
The full log is attached with the email sent.
I grouped the "easier to spot" 277 errors in the categories below:
Example failing test:
======================================================================
ERROR: test_search_get_view_with_query_category (noodleapi.search.tests.test_views.FunctionalSearchTests)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/travis/build/NoodleEducation/noodle-api/noodleapi/search/tests/test_views.py", line 44, in test_search_get_view_with_query_category
HTTP_AUTHORIZATION='Bearer ' + self.token.token)
File "/home/travis/virtualenv/python2.7.6/lib/python2.7/site-packages/django/test/client.py", line 473, in get
response = super(Client, self).get(path, data=data, **extra)
File "/home/travis/virtualenv/python2.7.6/lib/python2.7/site-packages/django/test/client.py", line 280, in get
return self.request(**r)
File "/home/travis/virtualenv/python2.7.6/lib/python2.7/site-packages/django/test/client.py", line 444, in request
six.reraise(*exc_info)
File "/home/travis/virtualenv/python2.7.6/lib/python2.7/site-packages/django/core/handlers/base.py", line 112, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/travis/virtualenv/python2.7.6/lib/python2.7/site-packages/django/views/generic/base.py", line 69, in view
return self.dispatch(request, *args, **kwargs)
File "/home/travis/virtualenv/python2.7.6/lib/python2.7/site-packages/django/views/decorators/csrf.py", line 57, in wrapped_view
return view_func(*args, **kwargs)
File "/home/travis/virtualenv/python2.7.6/lib/python2.7/site-packages/rest_framework/views.py", line 399, in dispatch
response = self.handle_exception(exc)
File "/home/travis/virtualenv/python2.7.6/lib/python2.7/site-packages/rest_framework/views.py", line 396, in dispatch
response = handler(request, *args, **kwargs)
File "/home/travis/build/NoodleEducation/noodle-api/noodleapi/search/api/views.py", line 61, in get
result = hsearch.search(query, category, start, rows)
File "/home/travis/build/NoodleEducation/noodle-api/noodleapi/noodlesearch/search/search.py", line 38, in search
return result.refine_result(solr_request, solr_request.get_solr_query())
File "/home/travis/build/NoodleEducation/noodle-api/noodleapi/noodlesearch/search/result.py", line 14, in refine_result
result['result'] = solr_obj.get_documents()
File "/home/travis/build/NoodleEducation/noodle-api/noodleapi/noodlesearch/solr.py", line 199, in get_documents
return self.response.documents
AttributeError: 'SolrResponse' object has no attribute 'documents'
Because of line 21 in class SolrRequest at File "/home/travis/build/NoodleEducation/noodle-api/noodleapi/noodlesearch/solr.py"
Example:
======================================================================
ERROR: test_insufficient_permission_upload (noodleapi.s3manager.tests.test_views.FunctionalS3ManagerTest)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/travis/virtualenv/python2.7.6/lib/python2.7/site-packages/mock.py", line 1201, in patched
return func(*args, **keywargs)
File "/home/travis/build/NoodleEducation/noodle-api/noodleapi/s3manager/tests/test_views.py", line 45, in test_insufficient_permission_upload
kwargs={'n_key': n_key})
File "/home/travis/virtualenv/python2.7.6/lib/python2.7/site-packages/django/core/urlresolvers.py", line 532, in reverse
return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
File "/home/travis/virtualenv/python2.7.6/lib/python2.7/site-packages/django/core/urlresolvers.py", line 403, in _reverse_with_prefix
self._populate()
File "/home/travis/virtualenv/python2.7.6/lib/python2.7/site-packages/django/core/urlresolvers.py", line 267, in _populate
for pattern in reversed(self.url_patterns):
File "/home/travis/virtualenv/python2.7.6/lib/python2.7/site-packages/django/core/urlresolvers.py", line 365, in url_patterns
patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "/home/travis/virtualenv/python2.7.6/lib/python2.7/site-packages/django/core/urlresolvers.py", line 360, in urlconf_module
self._urlconf_module = import_module(self.urlconf_name)
File "/home/travis/virtualenv/python2.7.6/lib/python2.7/site-packages/django/utils/importlib.py", line 40, in import_module
__import__(name)
File "/home/travis/build/NoodleEducation/noodle-api/noodleapi/urls.py", line 126, in <module>
url(r'^search/', include('search.urls')),
File "/home/travis/virtualenv/python2.7.6/lib/python2.7/site-packages/django/conf/urls/__init__.py", line 26, in include
urlconf_module = import_module(urlconf_module)
File "/home/travis/virtualenv/python2.7.6/lib/python2.7/site-packages/django/utils/importlib.py", line 40, in import_module
__import__(name)
File "/home/travis/build/NoodleEducation/noodle-api/noodleapi/search/urls.py", line 4, in <module>
from search import views
File "/home/travis/build/NoodleEducation/noodle-api/noodleapi/search/views.py", line 5, in <module>
from noodlesearch.search import categorysearch
File "/home/travis/build/NoodleEducation/noodle-api/noodleapi/noodlesearch/search/categorysearch.py", line 9, in <module>
from noodlesearch.solr import SolrRequest
File "/home/travis/build/NoodleEducation/noodle-api/noodleapi/noodlesearch/solr.py", line 8, in <module>
class SolrRequest(object):
File "/home/travis/build/NoodleEducation/noodle-api/noodleapi/noodlesearch/solr.py", line 21, in SolrRequest
), data='{"wt":"python","showDefaults":"false", "includeDynamic":"false"}').json()['fields']
File "/home/travis/virtualenv/python2.7.6/lib/python2.7/site-packages/requests/models.py", line 733, in json
return json.loads(self.text, **kwargs)
File "/opt/python/2.7.6/lib/python2.7/json/__init__.py", line 338, in loads
return _default_decoder.decode(s)
File "/opt/python/2.7.6/lib/python2.7/json/decoder.py", line 365, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/opt/python/2.7.6/lib/python2.7/json/decoder.py", line 383, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
The other 4 errors, I'll track them and remove them once we're done with the above, since they'll be much easier to spot.