Skip to content

Instantly share code, notes, and snippets.

@kishansagathiya
Created March 23, 2017 06:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kishansagathiya/46e4a5e33656d7cf04ada45412ca2493 to your computer and use it in GitHub Desktop.
Save kishansagathiya/46e4a5e33656d7cf04ada45412ca2493 to your computer and use it in GitHub Desktop.
dump of terminal
(zenodo1) kishan@kishan-Inspiron-3542:~/src/zenodo/tests/e2e$ pytest test_basic_tests.py
============================= test session starts ==============================
platform linux2 -- Python 2.7.12, pytest-3.0.4, py-1.4.31, pluggy-0.4.0
rootdir: /home/kishan/src/zenodo, inifile: pytest.ini
plugins: pep8-1.0.6, flask-0.10.0, cov-2.4.0
collected 2 items
test_basic_tests.py .F
---------- coverage: platform linux2, python 2.7.12-final-0 ----------
Name Stmts Miss Cover Missing
---------------------------------------------------------------------------------------------------------------------
/home/kishan/src/zenodo/zenodo/__init__.py 4 0 100%
/home/kishan/src/zenodo/zenodo/config.py 202 0 100%
/home/kishan/src/zenodo/zenodo/factory.py 39 3 92% 87, 97-98
/home/kishan/src/zenodo/zenodo/modules/__init__.py 1 0 100%
/home/kishan/src/zenodo/zenodo/modules/auditor/__init__.py 2 0 100%
/home/kishan/src/zenodo/zenodo/modules/auditor/ext.py 8 0 100%
/home/kishan/src/zenodo/zenodo/modules/cache/__init__.py 5 0 100%
/home/kishan/src/zenodo/zenodo/modules/cache/bccache.py 8 0 100%
/home/kishan/src/zenodo/zenodo/modules/cache/ext.py 11 0 100%
/home/kishan/src/zenodo/zenodo/modules/cache/pages.py 12 2 83% 41-44
/home/kishan/src/zenodo/zenodo/modules/cache/proxies.py 6 0 100%
/home/kishan/src/zenodo/zenodo/modules/deposit/__init__.py 2 0 100%
/home/kishan/src/zenodo/zenodo/modules/deposit/api.py 202 150 26% 69-75, 84-91, 108, 112, 116, 128-131, 145-149, 161, 171-178, 189-192, 202-218, 228, 233-239, 243-249, 254-265, 270-296, 300-352, 356-368, 372-379, 387-394, 399, 404, 409, 413-438
/home/kishan/src/zenodo/zenodo/modules/deposit/config.py 12 0 100%
/home/kishan/src/zenodo/zenodo/modules/deposit/errors.py 32 16 50% 59-60, 69-70, 74, 80-92, 96-104
/home/kishan/src/zenodo/zenodo/modules/deposit/ext.py 26 3 88% 52-54
/home/kishan/src/zenodo/zenodo/modules/deposit/fetchers.py 6 2 67% 34-35
/home/kishan/src/zenodo/zenodo/modules/deposit/forms.py 14 1 93% 37
/home/kishan/src/zenodo/zenodo/modules/deposit/indexer.py 23 18 22% 50-77
/home/kishan/src/zenodo/zenodo/modules/deposit/jsonschemas/__init__.py 2 0 100%
/home/kishan/src/zenodo/zenodo/modules/deposit/links.py 8 3 63% 35-43
/home/kishan/src/zenodo/zenodo/modules/deposit/loaders/__init__.py 9 0 100%
/home/kishan/src/zenodo/zenodo/modules/deposit/loaders/base.py 36 25 31% 39-48, 56-83
/home/kishan/src/zenodo/zenodo/modules/deposit/mappings/__init__.py 1 0 100%
/home/kishan/src/zenodo/zenodo/modules/deposit/minters.py 9 5 44% 35-55
/home/kishan/src/zenodo/zenodo/modules/deposit/query.py 8 3 63% 35-38
/home/kishan/src/zenodo/zenodo/modules/deposit/receivers.py 8 3 63% 37-40
/home/kishan/src/zenodo/zenodo/modules/deposit/tasks.py 31 19 39% 48-66, 77-82
/home/kishan/src/zenodo/zenodo/modules/deposit/utils.py 21 13 38% 36-52, 60
/home/kishan/src/zenodo/zenodo/modules/deposit/views.py 113 71 37% 65, 78-97, 105-108, 114-115, 128-136, 153-204, 217-218, 228-234, 251-294
/home/kishan/src/zenodo/zenodo/modules/fixtures/__init__.py 4 0 100%
/home/kishan/src/zenodo/zenodo/modules/fixtures/cli.py 74 31 58% 55-58, 66-67, 74-75, 82-83, 90, 97, 104-117, 126, 133, 144, 152-155
/home/kishan/src/zenodo/zenodo/modules/fixtures/communities.py 14 7 50% 42-49
/home/kishan/src/zenodo/zenodo/modules/fixtures/ext.py 14 0 100%
/home/kishan/src/zenodo/zenodo/modules/fixtures/files.py 31 21 32% 40-50, 55-69
/home/kishan/src/zenodo/zenodo/modules/fixtures/grants.py 26 18 31% 38-46, 52-60
/home/kishan/src/zenodo/zenodo/modules/fixtures/licenses.py 75 58 23% 51-101, 106-116, 121-135, 144-147, 156-174
/home/kishan/src/zenodo/zenodo/modules/fixtures/oai.py 15 10 33% 35-47
/home/kishan/src/zenodo/zenodo/modules/fixtures/pages.py 19 12 37% 39-60
/home/kishan/src/zenodo/zenodo/modules/fixtures/records.py 6 2 67% 34-35
/home/kishan/src/zenodo/zenodo/modules/fixtures/utils.py 8 2 75% 36, 42
/home/kishan/src/zenodo/zenodo/modules/frontpage/__init__.py 2 0 100%
/home/kishan/src/zenodo/zenodo/modules/frontpage/api.py 8 0 100%
/home/kishan/src/zenodo/zenodo/modules/frontpage/views.py 18 6 67% 47-54, 65, 74
/home/kishan/src/zenodo/zenodo/modules/jsonschemas/__init__.py 2 0 100%
/home/kishan/src/zenodo/zenodo/modules/jsonschemas/cli.py 34 12 65% 63-75, 85, 96, 107
/home/kishan/src/zenodo/zenodo/modules/jsonschemas/compilers.py 51 42 18% 35-39, 44-55, 60-66, 71-75, 80-84, 89-100
/home/kishan/src/zenodo/zenodo/modules/jsonschemas/config.py 5 0 100%
/home/kishan/src/zenodo/zenodo/modules/jsonschemas/ext.py 16 0 100%
/home/kishan/src/zenodo/zenodo/modules/jsonschemas/utils.py 35 20 43% 56-57, 73-74, 85, 95, 100-101, 106-113, 124-130
/home/kishan/src/zenodo/zenodo/modules/records/__init__.py 2 0 100%
/home/kishan/src/zenodo/zenodo/modules/records/config.py 10 0 100%
/home/kishan/src/zenodo/zenodo/modules/records/ext.py 22 0 100%
/home/kishan/src/zenodo/zenodo/modules/records/fetchers.py 7 2 71% 34, 43
/home/kishan/src/zenodo/zenodo/modules/records/indexer.py 12 9 25% 33-47
/home/kishan/src/zenodo/zenodo/modules/records/jsonschemas/__init__.py 2 0 100%
/home/kishan/src/zenodo/zenodo/modules/records/mappings/__init__.py 1 0 100%
/home/kishan/src/zenodo/zenodo/modules/records/minters.py 55 40 27% 42-43, 51-57, 62-74, 79-105, 117-135
/home/kishan/src/zenodo/zenodo/modules/records/models.py 95 29 69% 91, 96, 101-105, 110, 115, 120, 126-127, 132, 137-152, 190-191, 196-203, 220-231
/home/kishan/src/zenodo/zenodo/modules/records/permissions.py 133 81 39% 52-77, 82, 87, 92, 97, 102, 107, 112-115, 120, 134, 138-141, 165-166, 170, 175-178, 210-215, 235-237, 241, 246-257, 270-274, 282, 287, 293-304, 310-316, 322-323
/home/kishan/src/zenodo/zenodo/modules/records/serializers/__init__.py 54 0 100%
/home/kishan/src/zenodo/zenodo/modules/records/serializers/bibtex.py 236 188 20% 46, 57-61, 72, 75, 83, 87-101, 104-137, 140-144, 151-155, 163-167, 176-180, 188-192, 200-204, 212-217, 225-229, 237-241, 249-253, 257-291, 294-321, 324-328, 332-335, 339-342, 346-367, 371-374, 378-384, 388-391, 395-400, 404-407, 411-414, 418-422, 426-430, 434-438, 442-446, 450-457, 461-468, 472, 476, 481
/home/kishan/src/zenodo/zenodo/modules/records/serializers/fields/__init__.py 10 0 100%
/home/kishan/src/zenodo/zenodo/modules/records/serializers/fields/datetime.py 13 5 62% 39-43, 47
/home/kishan/src/zenodo/zenodo/modules/records/serializers/fields/doi.py 45 27 40% 69-76, 80-107, 117-119
/home/kishan/src/zenodo/zenodo/modules/records/serializers/fields/html.py 12 2 83% 72-73
/home/kishan/src/zenodo/zenodo/modules/records/serializers/fields/persistentid.py 25 11 56% 52-54, 58-66
/home/kishan/src/zenodo/zenodo/modules/records/serializers/fields/sanitizedunicode.py 16 8 50% 44-45, 52-60
/home/kishan/src/zenodo/zenodo/modules/records/serializers/fields/sanitizedurl.py 8 2 75% 40-41
/home/kishan/src/zenodo/zenodo/modules/records/serializers/fields/trimmedstring.py 7 2 71% 37-38
/home/kishan/src/zenodo/zenodo/modules/records/serializers/files.py 13 5 62% 41-50
/home/kishan/src/zenodo/zenodo/modules/records/serializers/json.py 20 8 60% 46-54, 58, 62, 69
/home/kishan/src/zenodo/zenodo/modules/records/serializers/legacyjson.py 14 5 64% 41, 56-61
/home/kishan/src/zenodo/zenodo/modules/records/serializers/schemas/__init__.py 2 0 100%
/home/kishan/src/zenodo/zenodo/modules/records/serializers/schemas/common.py 203 126 38% 52-55, 64-71, 86-96, 110, 115-117, 122-124, 138-140, 160-166, 171, 177-192, 251-252, 260-261, 269-271, 279-307, 312-325, 334-344, 349-350, 355-356, 363-364, 380-432, 438-445
/home/kishan/src/zenodo/zenodo/modules/records/serializers/schemas/csl.py 66 30 55% 45-48, 52-54, 84-88, 92, 97-99, 103-111, 115-117, 121-124, 128-129
/home/kishan/src/zenodo/zenodo/modules/records/serializers/schemas/datacite.py 118 65 45% 52-63, 109-116, 148-174, 179-196, 200-201, 208-219, 223-233, 237-250, 256-287
/home/kishan/src/zenodo/zenodo/modules/records/serializers/schemas/dc.py 83 54 35% 53-59, 63, 67-88, 92-98, 102-108, 112, 116, 120-126, 130, 134, 139-172
/home/kishan/src/zenodo/zenodo/modules/records/serializers/schemas/json.py 115 24 79% 45-47, 64-65, 70-72, 129-136, 151-158, 185-195, 233-236
/home/kishan/src/zenodo/zenodo/modules/records/serializers/schemas/legacyjson.py 203 124 39% 52-59, 63-83, 139-141, 145, 149, 153, 157-161, 165-172, 176-189, 194, 199-201, 207-217, 225, 234-243, 253-266, 271-274, 279-285, 290-308, 313-315, 323-335, 363-368, 372-379, 388-390, 399-403
/home/kishan/src/zenodo/zenodo/modules/records/serializers/schemas/marc21.py 134 87 35% 122-150, 154-165, 169-188, 192-207, 211-234, 238-257, 260-265, 277-280, 284-299, 302, 306-307, 319-320, 329-332, 337-348
/home/kishan/src/zenodo/zenodo/modules/records/utils.py 20 10 50% 37-41, 46, 51, 56-59
/home/kishan/src/zenodo/zenodo/modules/records/views.py 149 99 34% 63, 69-73, 83, 93, 99, 106-109, 115, 122, 128, 137, 146-168, 177, 183, 190-195, 204-214, 223-224, 230, 237-245, 251-262, 280-292, 299-302, 313-330, 341
/home/kishan/src/zenodo/zenodo/modules/redirector/__init__.py 2 0 100%
/home/kishan/src/zenodo/zenodo/modules/redirector/config.py 4 0 100%
/home/kishan/src/zenodo/zenodo/modules/redirector/views.py 62 42 32% 54-56, 64-66, 74-81, 85-89, 94-106, 113-116, 123-127, 134-141
/home/kishan/src/zenodo/zenodo/modules/rest/__init__.py 2 0 100%
/home/kishan/src/zenodo/zenodo/modules/rest/views.py 14 8 43% 41-54, 63
/home/kishan/src/zenodo/zenodo/modules/search_ui/__init__.py 2 0 100%
/home/kishan/src/zenodo/zenodo/modules/search_ui/views.py 4 0 100%
/home/kishan/src/zenodo/zenodo/modules/sipstore/__init__.py 2 0 100%
/home/kishan/src/zenodo/zenodo/modules/sipstore/api.py 30 19 37% 47-52, 73-89
/home/kishan/src/zenodo/zenodo/modules/sipstore/jsonschemas/__init__.py 2 0 100%
/home/kishan/src/zenodo/zenodo/modules/theme/__init__.py 2 0 100%
/home/kishan/src/zenodo/zenodo/modules/theme/bundles.py 8 0 100%
/home/kishan/src/zenodo/zenodo/modules/theme/collect.py 6 2 67% 34-35
/home/kishan/src/zenodo/zenodo/modules/theme/views.py 5 0 100%
/home/kishan/src/zenodo/zenodo/modules/xrootd/__init__.py 4 0 100%
/home/kishan/src/zenodo/zenodo/modules/xrootd/ext.py 20 4 80% 35-36, 55-56
/home/kishan/src/zenodo/zenodo/version.py 3 0 100%
---------------------------------------------------------------------------------------------------------------------
TOTAL 3395 1696 50%
=================================== FAILURES ===================================
__________________________ test_basic_tests[Firefox] ___________________________
live_server = <LiveServer listening at http://localhost:51076>
env_browser = <selenium.webdriver.firefox.webdriver.WebDriver (session="fadcb653-67f9-4bff-8310-74a8162f70fe")>
def test_basic_tests(live_server, env_browser):
"""E2E user registration and login test."""
browser = env_browser
# 1. Go to user registration page
browser.get(flask.url_for('security.register', _external=True))
assert (flask.url_for('security.register', _external=True) in
browser.current_url)
# 2. Input user data
signup_form = browser.find_element_by_name('register_user_form')
input_email = signup_form.find_element_by_name('email')
input_password = signup_form.find_element_by_name('password')
input_username = env_browser.find_element_by_id("profile.username")
# input w/ name "email"
# input w/ name "username"
# input w/ name "password"
user_email = 'test@example.org'
user_password = '12345_SIx'
user_name = 'test'
input_email.send_keys(user_email)
input_password.send_keys(user_password)
input_username.send_keys(user_name)
# 3. submit form
signup_form.submit()
sleep(1) # we need to wait after each form submission for redirect
# ...and get redirected to the "home page" ('/')
# This isn't a very important part of the process, and the '/' url isn't
# even registered for the Invenio-Accounts e2e app. So we don't check it.
# 3.5: After registering we should be logged in.
> browser.get(flask.url_for('security.change_password', _external=True))
test_basic_tests.py:75:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../../../Envs/zenodo1/local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py:250: in get
self.execute(Command.GET, {'url': url})
../../../../Envs/zenodo1/local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py:238: in execute
self.error_handler.check_response(response)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x7f0fbdd32810>
response = {'status': 500, 'value': '{"error":"unknown error","message":"Reached error page: about:neterror?e=connectionFailure&u... at /buildslave/rust-buildbot/slave/stable-dist-rustc-musl-linux/build/obj/../src/libstd/sys/unix/thread.rs:84"}'}
def check_response(self, response):
"""
Checks that a JSON response from the WebDriver does not have an error.
:Args:
- response - The JSON response from the WebDriver server as a dictionary
object.
:Raises: If the response contains an error message.
"""
status = response.get('status', None)
if status is None or status == ErrorCode.SUCCESS:
return
value = None
message = response.get("message", "")
screen = response.get("screen", "")
stacktrace = None
if isinstance(status, int):
value_json = response.get('value', None)
if value_json and isinstance(value_json, basestring):
import json
try:
value = json.loads(value_json)
if len(value.keys()) == 1:
value = value['value']
status = value.get('error', None)
if status is None:
status = value["status"]
message = value["value"]
if not isinstance(message, basestring):
value = message
try:
message = message['message']
except TypeError:
message = None
else:
message = value.get('message', None)
except ValueError:
pass
exception_class = ErrorInResponseException
if status in ErrorCode.NO_SUCH_ELEMENT:
exception_class = NoSuchElementException
elif status in ErrorCode.NO_SUCH_FRAME:
exception_class = NoSuchFrameException
elif status in ErrorCode.NO_SUCH_WINDOW:
exception_class = NoSuchWindowException
elif status in ErrorCode.STALE_ELEMENT_REFERENCE:
exception_class = StaleElementReferenceException
elif status in ErrorCode.ELEMENT_NOT_VISIBLE:
exception_class = ElementNotVisibleException
elif status in ErrorCode.INVALID_ELEMENT_STATE:
exception_class = InvalidElementStateException
elif status in ErrorCode.INVALID_SELECTOR \
or status in ErrorCode.INVALID_XPATH_SELECTOR \
or status in ErrorCode.INVALID_XPATH_SELECTOR_RETURN_TYPER:
exception_class = InvalidSelectorException
elif status in ErrorCode.ELEMENT_IS_NOT_SELECTABLE:
exception_class = ElementNotSelectableException
elif status in ErrorCode.INVALID_COOKIE_DOMAIN:
exception_class = WebDriverException
elif status in ErrorCode.UNABLE_TO_SET_COOKIE:
exception_class = WebDriverException
elif status in ErrorCode.TIMEOUT:
exception_class = TimeoutException
elif status in ErrorCode.SCRIPT_TIMEOUT:
exception_class = TimeoutException
elif status in ErrorCode.UNKNOWN_ERROR:
exception_class = WebDriverException
elif status in ErrorCode.UNEXPECTED_ALERT_OPEN:
exception_class = UnexpectedAlertPresentException
elif status in ErrorCode.NO_ALERT_OPEN:
exception_class = NoAlertPresentException
elif status in ErrorCode.IME_NOT_AVAILABLE:
exception_class = ImeNotAvailableException
elif status in ErrorCode.IME_ENGINE_ACTIVATION_FAILED:
exception_class = ImeActivationFailedException
elif status in ErrorCode.MOVE_TARGET_OUT_OF_BOUNDS:
exception_class = MoveTargetOutOfBoundsException
else:
exception_class = WebDriverException
if value == '' or value is None:
value = response['value']
if isinstance(value, basestring):
if exception_class == ErrorInResponseException:
raise exception_class(response, value)
raise exception_class(value)
if message == "" and 'message' in value:
message = value['message']
screen = None
if 'screen' in value:
screen = value['screen']
stacktrace = None
if 'stackTrace' in value and value['stackTrace']:
stacktrace = []
try:
for frame in value['stackTrace']:
line = self._value_or_default(frame, 'lineNumber', '')
file = self._value_or_default(frame, 'fileName', '<anonymous>')
if line:
file = "%s:%s" % (file, line)
meth = self._value_or_default(frame, 'methodName', '<anonymous>')
if 'className' in frame:
meth = "%s.%s" % (frame['className'], meth)
msg = " at %s (%s)"
msg = msg % (meth, file)
stacktrace.append(msg)
except TypeError:
pass
if exception_class == ErrorInResponseException:
raise exception_class(response, message)
elif exception_class == UnexpectedAlertPresentException and 'alert' in value:
raise exception_class(message, screen, stacktrace, value['alert'].get('text'))
> raise exception_class(message, screen, stacktrace)
E WebDriverException: Message: Reached error page: about:neterror?e=connectionFailure&u=http%3A//localhost%3A51076/login/%3Fnext%3D%252Faccounts%252Fsettings%252Fpassword%252F&c=UTF-8&f=regular&captive=true&d=Firefox%20can%E2%80%99t%20establish%20a%20connection%20to%20the%20server%20at%20localhost%3A51076.
../../../../Envs/zenodo1/local/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py:193: WebDriverException
---------------------------- Captured stderr setup -----------------------------
* Running on http://127.0.0.1:51076/ (Press CTRL+C to quit)
127.0.0.1 - - [23/Mar/2017 11:31:15] "GET / HTTP/1.1" 200 -
----------------------------- Captured stdout call -----------------------------
Content-Type: multipart/mixed; boundary="===============1981544818280891060=="
MIME-Version: 1.0
Subject: Welcome to Zenodo!
From: info@zenodo.org
To: test@example.org
Date: Thu, 23 Mar 2017 11:31:42 +0530
Message-ID: <149024890276.3742.14350310031838810316@kishan-Inspiron-3542>
--===============1981544818280891060==
Content-Type: multipart/alternative;
boundary="===============8829538182284876982=="
MIME-Version: 1.0
--===============8829538182284876982==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Welcome test@example.org!
You can confirm your email through the link below:
http://localhost:51076/confirm/WyIxIiwiMGMxN2JmNjZlNjQ5MDcwMTY3NzAxZDJkM2NkNzE3MTEiXQ.C7T2Rg.FaHvVuPSTCeil_-z-EKzfiyk-gw
--===============8829538182284876982==
Content-Type: text/html; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
<p>Welcome test@example.org!</p>
<p>You can confirm your email through the link below:</p>
<p><a href="http://localhost:51076/confirm/WyIxIiwiMGMxN2JmNjZlNjQ5MDcwMTY3NzAxZDJkM2NkNzE3MTEiXQ.C7T2Rg.FaHvVuPSTCeil_-z-EKzfiyk-gw">Confirm my account</a></p>
--===============8829538182284876982==--
--===============1981544818280891060==--
-------------------------------------------------------------------------------
----------------------------- Captured stderr call -----------------------------
127.0.0.1 - - [23/Mar/2017 11:31:23] "GET /signup/ HTTP/1.1" 200 -
127.0.0.1 - - [23/Mar/2017 11:31:23] "GET /static/gen/zenodo.ac5ed695.css HTTP/1.1" 200 -
127.0.0.1 - - [23/Mar/2017 11:31:23] "GET /static/gen/zenodo.705beba8.js HTTP/1.1" 200 -
127.0.0.1 - - [23/Mar/2017 11:31:24] "GET /static/favicon.ico HTTP/1.1" 404 -
127.0.0.1 - - [23/Mar/2017 11:31:35] "GET /static/img/zenodo.svg HTTP/1.1" 200 -
127.0.0.1 - - [23/Mar/2017 11:31:35] "GET /static/img/orcid.svg HTTP/1.1" 200 -
127.0.0.1 - - [23/Mar/2017 11:31:35] "GET /static/img/openaire.png HTTP/1.1" 200 -
127.0.0.1 - - [23/Mar/2017 11:31:35] "GET /static/img/cern.png HTTP/1.1" 200 -
127.0.0.1 - - [23/Mar/2017 11:31:35] "GET /static/img/eu.png HTTP/1.1" 200 -
127.0.0.1 - - [23/Mar/2017 11:31:35] "GET /static/node_modules/font-awesome/fonts/fontawesome-webfont.woff2?v=4.4.0 HTTP/1.1" 200 -
127.0.0.1 - - [23/Mar/2017 11:31:42] "GET /accounts/settings/password/ HTTP/1.1" 302 -
127.0.0.1 - - [23/Mar/2017 11:31:42] "POST /signup/ HTTP/1.1" 302 -
===================== 1 failed, 1 passed in 70.38 seconds ======================
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment