View Issue Details

IDProjectCategoryView StatusLast Update
0004248Talerobsolete componentpublic2016-11-08 13:29
ReporterTorsten Grothoff Assigned ToMarcello Stanisci  
PrioritynormalSeverityblockReproducibilityalways
Status closedResolutionduplicate 
Product Version0.0 
Target Version0.0Fixed in Version0.0 
Summary0004248: bug at https://bank.test.taler.net/auth/pin/question?exchange=https%3A%2F%2Fexchange.test.taler.net%2F&reserve_pub=KMPK9922NP7PK
Descriptionween i go to get pudos on the test if i poot the rong anser in the folloing
appears:
TypeError at /pin/verify
Unicode-objects must be encoded before hashing
Request Method: POST
Request URL: https://bank.test.taler.net/pin/verify
Django Version: 1.9.2
Exception Type: TypeError
Exception Value:
Unicode-objects must be encoded before hashing
Exception Location: ./bank_app/captcha.py in pin_tan_verify_attempt, line 111
Python Executable: /home/test/bank-venv/bin/uwsgi
Python Version: 3.4.4
Python Path:
['.',
 '',
 '/home/test/bank-venv/lib/python3.4',
 '/home/test/bank-venv/lib/python3.4/plat-x86_64-linux-gnu',
 '/home/test/bank-venv/lib/python3.4/lib-dynload',
 '/usr/lib/python3.4',
 '/usr/lib/python3.4/plat-x86_64-linux-gnu',
 '/home/test/bank-venv/lib/python3.4/site-packages']
Server time: Sun, 20 Mar 2016 08:18:27 +0000
Traceback Switch to copy-and-paste view

/home/test/bank-venv/lib/python3.4/site-packages/django/core/handlers/base.py in get_response
                    response = self.process_exception_by_middleware(e, request) ...
▶ Local vars
/home/test/bank-venv/lib/python3.4/site-packages/django/core/handlers/base.py in get_response
                    response = wrapped_callback(request, *callback_args, **callback_kwargs) ...
▶ Local vars
./bank_app/captcha.py in pin_tan_verify
▶ Local vars
./bank_app/lib.py in check_login
def check_db(fn): ...
▶ Local vars
./bank_app/captcha.py in pin_tan_verify_attempt
    except Exception: # FIXME narrow the Exception type ...
▶ Local vars
Request information

GET
No GET data
POST
Variable Value
pin_0
'5'
pin_1
'98a3e710da53dabe74c24d824a6b023c479080bf'
csrfmiddlewaretoken
'451s8ACSdrofzUINllCLlgiTTwogQXq7'
FILES
No FILES data
COOKIES
Variable Value
sessionid
't1wrq4strp74bryeg1v4dcwhts6qlj5l'
csrftoken
'451s8ACSdrofzUINllCLlgiTTwogQXq7'
META
Variable Value
wsgi.input
<uwsgi._Input object at 0x7f461ba9ea68>
HTTP_DNT
'1'
wsgi.version
(1, 0)
HTTP_CACHE_CONTROL
'max-age=0'
HTTP_ACCEPT_LANGUAGE
'en-US,en;q=0.8'
wsgi.multithread
False
HTTPS
'on'
REQUEST_SCHEME
'https'
SCRIPT_NAME
''
HTTP_CONTENT_TYPE
'application/x-www-form-urlencoded'
CONTENT_LENGTH
'107'
wsgi.errors
<_io.TextIOWrapper name=2 mode='w' encoding='UTF-8'>
wsgi.multiprocess
False
HTTP_REFERER
'https://bank.test.taler.net/auth/pin/question?exchange=https%3A%2F%2Fexchange.test.taler.net%2F&reserve_pub=KMPK9922NP7PKF7R2AXR795NK9XVS0TJ58HTA26XM52BNNKGHXPG&amount_value=1&amount_fraction=0&amount_currency=PUDOS'
HTTP_CONNECTION
'keep-alive'
HTTP_HOST
'bank.test.taler.net'
SERVER_PROTOCOL
'HTTP/1.1'
wsgi.file_wrapper
''
PATH_INFO
'/pin/verify'
REMOTE_ADDR
'86.253.40.254'
HTTP_USER_AGENT
('Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) '
 'Chrome/49.0.2623.87 Safari/537.36')
QUERY_STRING
''
CSRF_COOKIE
'451s8ACSdrofzUINllCLlgiTTwogQXq7'
SERVER_NAME
'bank.test.taler.net'
uwsgi.node
b'tripwire'
DOCUMENT_ROOT
'/usr/share/nginx/html'
SERVER_PORT
'443'
HTTP_CONTENT_LENGTH
'107'
wsgi.url_scheme
'https'
CONTENT_TYPE
'application/x-www-form-urlencoded'
HTTP_UPGRADE_INSECURE_REQUESTS
'1'
REQUEST_URI
'/pin/verify'
uwsgi.version
b'2.0.12'
HTTP_ACCEPT_ENCODING
'gzip, deflate'
HTTP_COOKIE
('sessionid=t1wrq4strp74bryeg1v4dcwhts6qlj5l; '
 'csrftoken=451s8ACSdrofzUINllCLlgiTTwogQXq7')
REQUEST_METHOD
'POST'
wsgi.run_once
False
HTTP_ORIGIN
'https://bank.test.taler.net'
HTTP_ACCEPT
'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'
REMOTE_PORT
'56678'
Settings
Using settings module bank_project.settings
Setting Value
ADMINS
[]
SESSION_SAVE_EVERY_REQUEST
False
AUTH_PASSWORD_VALIDATORS
'********************'
SESSION_FILE_PATH
None
MESSAGE_STORAGE
'django.contrib.messages.storage.fallback.FallbackStorage'
X_FRAME_OPTIONS
'SAMEORIGIN'
CSRF_COOKIE_NAME
'csrftoken'
DATABASE_ROUTERS
[]
DEFAULT_INDEX_TABLESPACE
''
SESSION_COOKIE_DOMAIN
None
LANGUAGE_COOKIE_DOMAIN
None
TEMPLATE_CONTEXT_PROCESSORS
['django.contrib.auth.context_processors.auth',
 'django.template.context_processors.debug',
 'django.template.context_processors.i18n',
 'django.template.context_processors.media',
 'django.template.context_processors.static',
 'django.template.context_processors.tz',
 'django.contrib.messages.context_processors.messages']
CSRF_COOKIE_PATH
'/'
EMAIL_USE_SSL
False
WSGI_APPLICATION
'bank_project.wsgi.application'
MEDIA_ROOT
''
MIDDLEWARE_CLASSES
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']
DATE_FORMAT
'N j, Y'
CSRF_COOKIE_AGE
31449600
EMAIL_HOST
'localhost'
YEAR_MONTH_FORMAT
'F Y'
TEST_NON_SERIALIZED_APPS
[]
FILE_UPLOAD_MAX_MEMORY_SIZE
2621440
DEFAULT_CONTENT_TYPE
'text/html'
SHORT_DATE_FORMAT
'm/d/Y'
CSRF_COOKIE_SECURE
False
STATIC_URL
'/static/'
CSRF_COOKIE_HTTPONLY
False
FIXTURE_DIRS
[]
MIGRATION_MODULES
{}
TEMPLATES
[{'APP_DIRS': True,
  'BACKEND': 'django.template.backends.django.DjangoTemplates',
  'DIRS': [],
  'OPTIONS': {'context_processors': ['django.template.context_processors.debug',
                                     'django.template.context_processors.request',
                                     'django.contrib.auth.context_processors.auth',
                                     'django.contrib.messages.context_processors.messages']}}]
SECURE_BROWSER_XSS_FILTER
False
STATIC_ROOT
'static/'
LOGIN_REDIRECT_URL
'/accounts/profile/'
FORMAT_MODULE_PATH
None
ROOT_URLCONF
'bank_project.urls'
INSTALLED_APPS
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'bank_app']
FIRST_DAY_OF_WEEK
0
LOGIN_URL
'/accounts/login/'
TEMPLATE_DIRS
[]
SESSION_EXPIRE_AT_BROWSER_CLOSE
False
SECURE_PROXY_SSL_HEADER
None
SESSION_COOKIE_SECURE
False
SETTINGS_MODULE
'bank_project.settings'
USE_X_FORWARDED_PORT
False
USE_THOUSAND_SEPARATOR
False
SECRET_KEY
'********************'
PREPEND_WWW
False
IGNORABLE_404_URLS
[]
DEFAULT_TABLESPACE
''
DATABASES
{'default': {'ATOMIC_REQUESTS': False,
             'AUTOCOMMIT': True,
             'CONN_MAX_AGE': 0,
             'ENGINE': 'django.db.backends.postgresql_psycopg2',
             'HOST': '',
             'NAME': 'talertest',
             'OPTIONS': {},
             'PASSWORD': '********************',
             'PORT': '',
             'TEST': {'CHARSET': None,
                      'COLLATION': None,
                      'MIRROR': None,
                      'NAME': None},
             'TIME_ZONE': None,
             'USER': ''}}
USE_L10N
True
CACHE_MIDDLEWARE_KEY_PREFIX
'********************'
DATE_INPUT_FORMATS
['%Y-%m-%d',
 '%m/%d/%Y',
 '%m/%d/%y',
 '%b %d %Y',
 '%b %d, %Y',
 '%d %b %Y',
 '%d %b, %Y',
 '%B %d %Y',
 '%B %d, %Y',
 '%d %B %Y',
 '%d %B, %Y']
FILE_UPLOAD_HANDLERS
['django.core.files.uploadhandler.MemoryFileUploadHandler',
 'django.core.files.uploadhandler.TemporaryFileUploadHandler']
LANGUAGE_CODE
'en-us'
TEMPLATE_LOADERS
['django.template.loaders.filesystem.Loader',
 'django.template.loaders.app_directories.Loader']
SECURE_SSL_REDIRECT
False
SECURE_SSL_HOST
None
TEMPLATE_DEBUG
False
SESSION_COOKIE_HTTPONLY
True
DEBUG_PROPAGATE_EXCEPTIONS
False
TIME_INPUT_FORMATS
['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']
CACHE_MIDDLEWARE_ALIAS
'default'
DATETIME_FORMAT
'N j, Y, P'
TEST_RUNNER
'django.test.runner.DiscoverRunner'
TEMPLATE_STRING_IF_INVALID
''
DATETIME_INPUT_FORMATS
['%Y-%m-%d %H:%M:%S',
 '%Y-%m-%d %H:%M:%S.%f',
 '%Y-%m-%d %H:%M',
 '%Y-%m-%d',
 '%m/%d/%Y %H:%M:%S',
 '%m/%d/%Y %H:%M:%S.%f',
 '%m/%d/%Y %H:%M',
 '%m/%d/%Y',
 '%m/%d/%y %H:%M:%S',
 '%m/%d/%y %H:%M:%S.%f',
 '%m/%d/%y %H:%M',
 '%m/%d/%y']
ALLOWED_INCLUDE_ROOTS
[]
NUMBER_GROUPING
0
LANGUAGE_COOKIE_PATH
'/'
SESSION_SERIALIZER
'django.contrib.sessions.serializers.JSONSerializer'
DEFAULT_FILE_STORAGE
'django.core.files.storage.FileSystemStorage'
STATICFILES_STORAGE
'django.contrib.staticfiles.storage.StaticFilesStorage'
SILENCED_SYSTEM_CHECKS
[]
SECURE_REDIRECT_EXEMPT
[]
STATICFILES_FINDERS
['django.contrib.staticfiles.finders.FileSystemFinder',
 'django.contrib.staticfiles.finders.AppDirectoriesFinder']
LOGOUT_URL
'/accounts/logout/'
SIGNING_BACKEND
'django.core.signing.TimestampSigner'
EMAIL_TIMEOUT
None
TIME_ZONE
'UTC'
AUTH_USER_MODEL
'auth.User'
DEBUG
True
SHORT_DATETIME_FORMAT
'm/d/Y P'
TIME_FORMAT
'P'
EMAIL_HOST_PASSWORD
'********************'
SESSION_COOKIE_NAME
'sessionid'
MANAGERS
[]
EMAIL_BACKEND
'django.core.mail.backends.smtp.EmailBackend'
LOGGING
{}
INTERNAL_IPS
[]
LANGUAGE_COOKIE_NAME
'django_language'
DEFAULT_FROM_EMAIL
'webmaster@localhost'
FILE_UPLOAD_PERMISSIONS
None
USE_TZ
True
USE_I18N
True
DEFAULT_EXCEPTION_REPORTER_FILTER
'django.views.debug.SafeExceptionReporterFilter'
EMAIL_HOST_USER
''
FILE_CHARSET
'utf-8'
DEFAULT_CHARSET
'utf-8'
USE_X_FORWARDED_HOST
False
SECURE_CONTENT_TYPE_NOSNIFF
False
CSRF_TRUSTED_ORIGINS
[]
LANGUAGES_BIDI
['he', 'ar', 'fa', 'ur']
SESSION_COOKIE_AGE
1209600
CSRF_COOKIE_DOMAIN
None
SESSION_ENGINE
'django.contrib.sessions.backends.db'
ALLOWED_HOSTS
[]
PASSWORD_RESET_TIMEOUT_DAYS
'********************'
SECURE_HSTS_INCLUDE_SUBDOMAINS
False
MONTH_DAY_FORMAT
'F j'
THOUSAND_SEPARATOR
','
FILE_UPLOAD_DIRECTORY_PERMISSIONS
None
LANGUAGE_COOKIE_AGE
None
CSRF_FAILURE_VIEW
'django.views.csrf.csrf_failure'
FORCE_SCRIPT_NAME
None
SERVER_EMAIL
'root@localhost'
STATICFILES_DIRS
['/home/test/bank/django/bank_app/my-static']
EMAIL_SUBJECT_PREFIX
'[Django] '
SECURE_HSTS_SECONDS
0
APPEND_SLASH
True
EMAIL_SSL_CERTFILE
None
DISALLOWED_USER_AGENTS
[]
EMAIL_SSL_KEYFILE
'********************'
EMAIL_USE_TLS
False
CSRF_HEADER_NAME
'HTTP_X_CSRFTOKEN'
EMAIL_PORT
25
ABSOLUTE_URL_OVERRIDES
{}
LOGGING_CONFIG
'logging.config.dictConfig'
AUTHENTICATION_BACKENDS
['django.contrib.auth.backends.ModelBackend']
CACHES
{'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}
LOCALE_PATHS
[]
FILE_UPLOAD_TEMP_DIR
None
DECIMAL_SEPARATOR
'.'
PASSWORD_HASHERS
'********************'
SESSION_COOKIE_PATH
'/'
MEDIA_URL
''
USE_ETAGS
False
BASE_DIR
'/home/test/bank/django'
CACHE_MIDDLEWARE_SECONDS
600
LANGUAGES
[('af', 'Afrikaans'),
 ('ar', 'Arabic'),
 ('ast', 'Asturian'),
 ('az', 'Azerbaijani'),
 ('bg', 'Bulgarian'),
 ('be', 'Belarusian'),
 ('bn', 'Bengali'),
 ('br', 'Breton'),
 ('bs', 'Bosnian'),
 ('ca', 'Catalan'),
 ('cs', 'Czech'),
 ('cy', 'Welsh'),
 ('da', 'Danish'),
 ('de', 'German'),
 ('el', 'Greek'),
 ('en', 'English'),
 ('en-au', 'Australian English'),
 ('en-gb', 'British English'),
 ('eo', 'Esperanto'),
 ('es', 'Spanish'),
 ('es-ar', 'Argentinian Spanish'),
 ('es-co', 'Colombian Spanish'),
 ('es-mx', 'Mexican Spanish'),
 ('es-ni', 'Nicaraguan Spanish'),
 ('es-ve', 'Venezuelan Spanish'),
 ('et', 'Estonian'),
 ('eu', 'Basque'),
 ('fa', 'Persian'),
 ('fi', 'Finnish'),
 ('fr', 'French'),
 ('fy', 'Frisian'),
 ('ga', 'Irish'),
 ('gd', 'Scottish Gaelic'),
 ('gl', 'Galician'),
 ('he', 'Hebrew'),
 ('hi', 'Hindi'),
 ('hr', 'Croatian'),
 ('hu', 'Hungarian'),
 ('ia', 'Interlingua'),
 ('id', 'Indonesian'),
 ('io', 'Ido'),
 ('is', 'Icelandic'),
 ('it', 'Italian'),
 ('ja', 'Japanese'),
 ('ka', 'Georgian'),
 ('kk', 'Kazakh'),
 ('km', 'Khmer'),
 ('kn', 'Kannada'),
 ('ko', 'Korean'),
 ('lb', 'Luxembourgish'),
 ('lt', 'Lithuanian'),
 ('lv', 'Latvian'),
 ('mk', 'Macedonian'),
 ('ml', 'Malayalam'),
 ('mn', 'Mongolian'),
 ('mr', 'Marathi'),
 ('my', 'Burmese'),
 ('nb', 'Norwegian Bokmal'),
 ('ne', 'Nepali'),
 ('nl', 'Dutch'),
 ('nn', 'Norwegian Nynorsk'),
 ('os', 'Ossetic'),
 ('pa', 'Punjabi'),
 ('pl', 'Polish'),
 ('pt', 'Portuguese'),
 ('pt-br', 'Brazilian Portuguese'),
 ('ro', 'Romanian'),
 ('ru', 'Russian'),
 ('sk', 'Slovak'),
 ('sl', 'Slovenian'),
 ('sq', 'Albanian'),
 ('sr', 'Serbian'),
 ('sr-latn', 'Serbian Latin'),
 ('sv', 'Swedish'),
 ('sw', 'Swahili'),
 ('ta', 'Tamil'),
 ('te', 'Telugu'),
 ('th', 'Thai'),
 ('tr', 'Turkish'),
 ('tt', 'Tatar'),
 ('udm', 'Udmurt'),
 ('uk', 'Ukrainian'),
 ('ur', 'Urdu'),
 ('vi', 'Vietnamese'),
 ('zh-hans', 'Simplified Chinese'),
 ('zh-hant', 'Traditional Chinese')]
SESSION_CACHE_ALIAS
'default'
You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code.
Additional InformationMETA
Variable Value
wsgi.input
<uwsgi._Input object at 0x7f461ba9ea68>
HTTP_DNT
'1'
wsgi.version
(1, 0)
HTTP_CACHE_CONTROL
'max-age=0'
HTTP_ACCEPT_LANGUAGE
'en-US,en;q=0.8'
wsgi.multithread
False
HTTPS
'on'
REQUEST_SCHEME
'https'
SCRIPT_NAME
''
HTTP_CONTENT_TYPE
'application/x-www-form-urlencoded'
CONTENT_LENGTH
'107'
wsgi.errors
<_io.TextIOWrapper name=2 mode='w' encoding='UTF-8'>
wsgi.multiprocess
False
HTTP_REFERER
'https://bank.test.taler.net/auth/pin/question?exchange=https%3A%2F%2Fexchange.test.taler.net%2F&reserve_pub=KMPK9922NP7PKF7R2AXR795NK9XVS0TJ58HTA26XM52BNNKGHXPG&amount_value=1&amount_fraction=0&amount_currency=PUDOS'
HTTP_CONNECTION
'keep-alive'
HTTP_HOST
'bank.test.taler.net'
SERVER_PROTOCOL
'HTTP/1.1'
wsgi.file_wrapper
''
PATH_INFO
'/pin/verify'
REMOTE_ADDR
'86.253.40.254'
HTTP_USER_AGENT
('Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) '
 'Chrome/49.0.2623.87 Safari/537.36')
QUERY_STRING
''
CSRF_COOKIE
'451s8ACSdrofzUINllCLlgiTTwogQXq7'
SERVER_NAME
'bank.test.taler.net'
uwsgi.node
b'tripwire'
DOCUMENT_ROOT
'/usr/share/nginx/html'
SERVER_PORT
'443'
HTTP_CONTENT_LENGTH
'107'
wsgi.url_scheme
'https'
CONTENT_TYPE
'application/x-www-form-urlencoded'
HTTP_UPGRADE_INSECURE_REQUESTS
'1'
REQUEST_URI
'/pin/verify'
uwsgi.version
b'2.0.12'
HTTP_ACCEPT_ENCODING
'gzip, deflate'
HTTP_COOKIE
('sessionid=t1wrq4strp74bryeg1v4dcwhts6qlj5l; '
 'csrftoken=451s8ACSdrofzUINllCLlgiTTwogQXq7')
REQUEST_METHOD
'POST'
wsgi.run_once
False
HTTP_ORIGIN
'https://bank.test.taler.net'
HTTP_ACCEPT
'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'
REMOTE_PORT
'56678'
TagsNo tags attached.
Attached Files
TypeError at _pin_verify.html (61,287 bytes)   
<!DOCTYPE html>
<!-- saved from url=(0038)https://bank.test.taler.net/pin/verify -->
<html lang="en"><script type="text/javascript">window["_gaUserPrefs"] = { ioo : function() { return true; } }</script><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  
  <meta name="robots" content="NONE,NOARCHIVE">
  <title>TypeError at /pin/verify</title>
  <style type="text/css">
    html * { padding:0; margin:0; }
    body * { padding:10px 20px; }
    body * * { padding:0; }
    body { font:small sans-serif; }
    body>div { border-bottom:1px solid #ddd; }
    h1 { font-weight:normal; }
    h2 { margin-bottom:.8em; }
    h2 span { font-size:80%; color:#666; font-weight:normal; }
    h3 { margin:1em 0 .5em 0; }
    h4 { margin:0 0 .5em 0; font-weight: normal; }
    code, pre { font-size: 100%; white-space: pre-wrap; }
    table { border:1px solid #ccc; border-collapse: collapse; width:100%; background:white; }
    tbody td, tbody th { vertical-align:top; padding:2px 3px; }
    thead th {
      padding:1px 6px 1px 3px; background:#fefefe; text-align:left;
      font-weight:normal; font-size:11px; border:1px solid #ddd;
    }
    tbody th { width:12em; text-align:right; color:#666; padding-right:.5em; }
    table.vars { margin:5px 0 2px 40px; }
    table.vars td, table.req td { font-family:monospace; }
    table td.code { width:100%; }
    table td.code pre { overflow:hidden; }
    table.source th { color:#666; }
    table.source td { font-family:monospace; white-space:pre; border-bottom:1px solid #eee; }
    ul.traceback { list-style-type:none; color: #222; }
    ul.traceback li.frame { padding-bottom:1em; color:#666; }
    ul.traceback li.user { background-color:#e0e0e0; color:#000 }
    div.context { padding:10px 0; overflow:hidden; }
    div.context ol { padding-left:30px; margin:0 10px; list-style-position: inside; }
    div.context ol li { font-family:monospace; white-space:pre; color:#777; cursor:pointer; padding-left: 2px; }
    div.context ol li pre { display:inline; }
    div.context ol.context-line li { color:#505050; background-color:#dfdfdf; padding: 3px 2px; }
    div.context ol.context-line li span { position:absolute; right:32px; }
    .user div.context ol.context-line li { background-color:#bbb; color:#000; }
    .user div.context ol li { color:#666; }
    div.commands { margin-left: 40px; }
    div.commands a { color:#555; text-decoration:none; }
    .user div.commands a { color: black; }
    #summary { background: #ffc; }
    #summary h2 { font-weight: normal; color: #666; }
    #explanation { background:#eee; }
    #template, #template-not-exist { background:#f6f6f6; }
    #template-not-exist ul { margin: 0 0 10px 20px; }
    #template-not-exist .postmortem-section { margin-bottom: 3px; }
    #unicode-hint { background:#eee; }
    #traceback { background:#eee; }
    #requestinfo { background:#f6f6f6; padding-left:120px; }
    #summary table { border:none; background:transparent; }
    #requestinfo h2, #requestinfo h3 { position:relative; margin-left:-100px; }
    #requestinfo h3 { margin-bottom:-1em; }
    .error { background: #ffc; }
    .specific { color:#cc3300; font-weight:bold; }
    h2 span.commands { font-size:.7em;}
    span.commands a:link {color:#5E5694;}
    pre.exception_value { font-family: sans-serif; color: #666; font-size: 1.5em; margin: 10px 0 10px 0; }
    .append-bottom { margin-bottom: 10px; }
  </style>
  
  <style type="text/css"></style><script type="text/javascript">
  //<!--
    function getElementsByClassName(oElm, strTagName, strClassName){
        // Written by Jonathan Snook, http://www.snook.ca/jon; Add-ons by Robert Nyman, http://www.robertnyman.com
        var arrElements = (strTagName == "*" && document.all)? document.all :
        oElm.getElementsByTagName(strTagName);
        var arrReturnElements = new Array();
        strClassName = strClassName.replace(/\-/g, "\-");
        var oRegExp = new RegExp("(^|\s)" + strClassName + "(\s|$)");
        var oElement;
        for(var i=0; i<arrElements.length; i++){
            oElement = arrElements[i];
            if(oRegExp.test(oElement.className)){
                arrReturnElements.push(oElement);
            }
        }
        return (arrReturnElements)
    }
    function hideAll(elems) {
      for (var e = 0; e < elems.length; e++) {
        elems[e].style.display = 'none';
      }
    }
    window.onload = function() {
      hideAll(getElementsByClassName(document, 'table', 'vars'));
      hideAll(getElementsByClassName(document, 'ol', 'pre-context'));
      hideAll(getElementsByClassName(document, 'ol', 'post-context'));
      hideAll(getElementsByClassName(document, 'div', 'pastebin'));
    }
    function toggle() {
      for (var i = 0; i < arguments.length; i++) {
        var e = document.getElementById(arguments[i]);
        if (e) {
          e.style.display = e.style.display == 'none' ? 'block': 'none';
        }
      }
      return false;
    }
    function varToggle(link, id) {
      toggle('v' + id);
      var s = link.getElementsByTagName('span')[0];
      var uarr = String.fromCharCode(0x25b6);
      var darr = String.fromCharCode(0x25bc);
      s.innerHTML = s.innerHTML == uarr ? darr : uarr;
      return false;
    }
    function switchPastebinFriendly(link) {
      s1 = "Switch to copy-and-paste view";
      s2 = "Switch back to interactive view";
      link.innerHTML = link.innerHTML.trim() == s1 ? s2: s1;
      toggle('browserTraceback', 'pastebinTraceback');
      return false;
    }
    //-->
  </script>
  
<link rel="stylesheet" type="text/css" href="chrome-extension://pkehgijcmpdhfbdbbnkijodmdjhbjlgp/skin/socialwidgets.css"></head>
<body>
<div id="summary">
  <h1>TypeError at /pin/verify</h1>
  <pre class="exception_value">Unicode-objects must be encoded before hashing</pre>
  <table class="meta">

    <tbody><tr>
      <th>Request Method:</th>
      <td>POST</td>
    </tr>
    <tr>
      <th>Request URL:</th>
      <td>https://bank.test.taler.net/pin/verify</td>
    </tr>

    <tr>
      <th>Django Version:</th>
      <td>1.9.2</td>
    </tr>

    <tr>
      <th>Exception Type:</th>
      <td>TypeError</td>
    </tr>


    <tr>
      <th>Exception Value:</th>
      <td><pre>Unicode-objects must be encoded before hashing</pre></td>
    </tr>


    <tr>
      <th>Exception Location:</th>
      <td>./bank_app/captcha.py in pin_tan_verify_attempt, line 111</td>
    </tr>

    <tr>
      <th>Python Executable:</th>
      <td>/home/test/bank-venv/bin/uwsgi</td>
    </tr>
    <tr>
      <th>Python Version:</th>
      <td>3.4.4</td>
    </tr>
    <tr>
      <th>Python Path:</th>
      <td><pre>['.',
 '',
 '/home/test/bank-venv/lib/python3.4',
 '/home/test/bank-venv/lib/python3.4/plat-x86_64-linux-gnu',
 '/home/test/bank-venv/lib/python3.4/lib-dynload',
 '/usr/lib/python3.4',
 '/usr/lib/python3.4/plat-x86_64-linux-gnu',
 '/home/test/bank-venv/lib/python3.4/site-packages']</pre></td>
    </tr>
    <tr>
      <th>Server time:</th>
      <td>Sun, 20 Mar 2016 08:18:27 +0000</td>
    </tr>
  </tbody></table>
</div>




<div id="traceback">
  <h2>Traceback <span class="commands"><a href="https://bank.test.taler.net/pin/verify#" onclick="return switchPastebinFriendly(this);">
    Switch to copy-and-paste view</a></span>
  </h2>
  
  <div id="browserTraceback">
    <ul class="traceback">
      
        
        <li class="frame django">
          <code>/home/test/bank-venv/lib/python3.4/site-packages/django/core/handlers/base.py</code> in <code>get_response</code>

          
            <div class="context" id="c139939042037320">
              
                <ol start="142" class="pre-context" id="pre139939042037320" style="display: none;">
                
                  <li onclick="toggle(&#39;pre139939042037320&#39;, &#39;post139939042037320&#39;)"><pre>                        break</pre></li>
                
                  <li onclick="toggle(&#39;pre139939042037320&#39;, &#39;post139939042037320&#39;)"><pre></pre></li>
                
                  <li onclick="toggle(&#39;pre139939042037320&#39;, &#39;post139939042037320&#39;)"><pre>            if response is None:</pre></li>
                
                  <li onclick="toggle(&#39;pre139939042037320&#39;, &#39;post139939042037320&#39;)"><pre>                wrapped_callback = self.make_view_atomic(callback)</pre></li>
                
                  <li onclick="toggle(&#39;pre139939042037320&#39;, &#39;post139939042037320&#39;)"><pre>                try:</pre></li>
                
                  <li onclick="toggle(&#39;pre139939042037320&#39;, &#39;post139939042037320&#39;)"><pre>                    response = wrapped_callback(request, *callback_args, **callback_kwargs)</pre></li>
                
                  <li onclick="toggle(&#39;pre139939042037320&#39;, &#39;post139939042037320&#39;)"><pre>                except Exception as e:</pre></li>
                
                </ol>
              
              <ol start="149" class="context-line">
                <li onclick="toggle(&#39;pre139939042037320&#39;, &#39;post139939042037320&#39;)"><pre>                    response = self.process_exception_by_middleware(e, request)</pre> <span>...</span></li></ol>
              
                <ol start="150" class="post-context" id="post139939042037320" style="display: none;">
                  
                  <li onclick="toggle(&#39;pre139939042037320&#39;, &#39;post139939042037320&#39;)"><pre></pre></li>
                  
                  <li onclick="toggle(&#39;pre139939042037320&#39;, &#39;post139939042037320&#39;)"><pre>            # Complain if the view returned None (a common error).</pre></li>
                  
                  <li onclick="toggle(&#39;pre139939042037320&#39;, &#39;post139939042037320&#39;)"><pre>            if response is None:</pre></li>
                  
                  <li onclick="toggle(&#39;pre139939042037320&#39;, &#39;post139939042037320&#39;)"><pre>                if isinstance(callback, types.FunctionType):    # FBV</pre></li>
                  
                  <li onclick="toggle(&#39;pre139939042037320&#39;, &#39;post139939042037320&#39;)"><pre>                    view_name = callback.__name__</pre></li>
                  
                  <li onclick="toggle(&#39;pre139939042037320&#39;, &#39;post139939042037320&#39;)"><pre>                else:                                           # CBV</pre></li>
                  
              </ol>
              
            </div>
          

          
            <div class="commands">
                
                    <a href="https://bank.test.taler.net/pin/verify#" onclick="return varToggle(this, &#39;139939042037320&#39;)"><span>▶</span> Local vars</a>
                
            </div>
            <table class="vars" id="v139939042037320" style="display: none;">
              <thead>
                <tr>
                  <th>Variable</th>
                  <th>Value</th>
                </tr>
              </thead>
              <tbody>
                
                  <tr>
                    <td>urlconf</td>
                    <td class="code"><pre>'bank_project.urls'</pre></td>
                  </tr>
                
                  <tr>
                    <td>response_is_rendered</td>
                    <td class="code"><pre>False</pre></td>
                  </tr>
                
                  <tr>
                    <td>request</td>
                    <td class="code"><pre>&lt;WSGIRequest: POST '/pin/verify'&gt;</pre></td>
                  </tr>
                
                  <tr>
                    <td>self</td>
                    <td class="code"><pre>&lt;django.core.handlers.wsgi.WSGIHandler object at 0x7f461be72f60&gt;</pre></td>
                  </tr>
                
                  <tr>
                    <td>callback_args</td>
                    <td class="code"><pre>()</pre></td>
                  </tr>
                
                  <tr>
                    <td>resolver</td>
                    <td class="code"><pre>&lt;RegexURLResolver 'bank_project.urls' (None:None) ^/&gt;</pre></td>
                  </tr>
                
                  <tr>
                    <td>resolver_match</td>
                    <td class="code"><pre>ResolverMatch(func=bank_app.captcha.pin_tan_verify, args=(), kwargs={}, url_name=None, app_names=[], namespaces=[])</pre></td>
                  </tr>
                
                  <tr>
                    <td>callback</td>
                    <td class="code"><pre>&lt;function pin_tan_verify at 0x7f4618f44950&gt;</pre></td>
                  </tr>
                
                  <tr>
                    <td>response</td>
                    <td class="code"><pre>None</pre></td>
                  </tr>
                
                  <tr>
                    <td>wrapped_callback</td>
                    <td class="code"><pre>&lt;function pin_tan_verify at 0x7f4618f44950&gt;</pre></td>
                  </tr>
                
                  <tr>
                    <td>callback_kwargs</td>
                    <td class="code"><pre>{}</pre></td>
                  </tr>
                
                  <tr>
                    <td>middleware_method</td>
                    <td class="code"><pre>&lt;bound method CsrfViewMiddleware.process_view of &lt;django.middleware.csrf.CsrfViewMiddleware object at 0x7f46190e6d68&gt;&gt;</pre></td>
                  </tr>
                
              </tbody>
            </table>
          
        </li>
      
        
        <li class="frame django">
          <code>/home/test/bank-venv/lib/python3.4/site-packages/django/core/handlers/base.py</code> in <code>get_response</code>

          
            <div class="context" id="c139939042034120">
              
                <ol start="140" class="pre-context" id="pre139939042034120" style="display: none;">
                
                  <li onclick="toggle(&#39;pre139939042034120&#39;, &#39;post139939042034120&#39;)"><pre>                    response = middleware_method(request, callback, callback_args, callback_kwargs)</pre></li>
                
                  <li onclick="toggle(&#39;pre139939042034120&#39;, &#39;post139939042034120&#39;)"><pre>                    if response:</pre></li>
                
                  <li onclick="toggle(&#39;pre139939042034120&#39;, &#39;post139939042034120&#39;)"><pre>                        break</pre></li>
                
                  <li onclick="toggle(&#39;pre139939042034120&#39;, &#39;post139939042034120&#39;)"><pre></pre></li>
                
                  <li onclick="toggle(&#39;pre139939042034120&#39;, &#39;post139939042034120&#39;)"><pre>            if response is None:</pre></li>
                
                  <li onclick="toggle(&#39;pre139939042034120&#39;, &#39;post139939042034120&#39;)"><pre>                wrapped_callback = self.make_view_atomic(callback)</pre></li>
                
                  <li onclick="toggle(&#39;pre139939042034120&#39;, &#39;post139939042034120&#39;)"><pre>                try:</pre></li>
                
                </ol>
              
              <ol start="147" class="context-line">
                <li onclick="toggle(&#39;pre139939042034120&#39;, &#39;post139939042034120&#39;)"><pre>                    response = wrapped_callback(request, *callback_args, **callback_kwargs)</pre> <span>...</span></li></ol>
              
                <ol start="148" class="post-context" id="post139939042034120" style="display: none;">
                  
                  <li onclick="toggle(&#39;pre139939042034120&#39;, &#39;post139939042034120&#39;)"><pre>                except Exception as e:</pre></li>
                  
                  <li onclick="toggle(&#39;pre139939042034120&#39;, &#39;post139939042034120&#39;)"><pre>                    response = self.process_exception_by_middleware(e, request)</pre></li>
                  
                  <li onclick="toggle(&#39;pre139939042034120&#39;, &#39;post139939042034120&#39;)"><pre></pre></li>
                  
                  <li onclick="toggle(&#39;pre139939042034120&#39;, &#39;post139939042034120&#39;)"><pre>            # Complain if the view returned None (a common error).</pre></li>
                  
                  <li onclick="toggle(&#39;pre139939042034120&#39;, &#39;post139939042034120&#39;)"><pre>            if response is None:</pre></li>
                  
                  <li onclick="toggle(&#39;pre139939042034120&#39;, &#39;post139939042034120&#39;)"><pre>                if isinstance(callback, types.FunctionType):    # FBV</pre></li>
                  
              </ol>
              
            </div>
          

          
            <div class="commands">
                
                    <a href="https://bank.test.taler.net/pin/verify#" onclick="return varToggle(this, &#39;139939042034120&#39;)"><span>▶</span> Local vars</a>
                
            </div>
            <table class="vars" id="v139939042034120" style="display: none;">
              <thead>
                <tr>
                  <th>Variable</th>
                  <th>Value</th>
                </tr>
              </thead>
              <tbody>
                
                  <tr>
                    <td>urlconf</td>
                    <td class="code"><pre>'bank_project.urls'</pre></td>
                  </tr>
                
                  <tr>
                    <td>response_is_rendered</td>
                    <td class="code"><pre>False</pre></td>
                  </tr>
                
                  <tr>
                    <td>request</td>
                    <td class="code"><pre>&lt;WSGIRequest: POST '/pin/verify'&gt;</pre></td>
                  </tr>
                
                  <tr>
                    <td>self</td>
                    <td class="code"><pre>&lt;django.core.handlers.wsgi.WSGIHandler object at 0x7f461be72f60&gt;</pre></td>
                  </tr>
                
                  <tr>
                    <td>callback_args</td>
                    <td class="code"><pre>()</pre></td>
                  </tr>
                
                  <tr>
                    <td>resolver</td>
                    <td class="code"><pre>&lt;RegexURLResolver 'bank_project.urls' (None:None) ^/&gt;</pre></td>
                  </tr>
                
                  <tr>
                    <td>resolver_match</td>
                    <td class="code"><pre>ResolverMatch(func=bank_app.captcha.pin_tan_verify, args=(), kwargs={}, url_name=None, app_names=[], namespaces=[])</pre></td>
                  </tr>
                
                  <tr>
                    <td>callback</td>
                    <td class="code"><pre>&lt;function pin_tan_verify at 0x7f4618f44950&gt;</pre></td>
                  </tr>
                
                  <tr>
                    <td>response</td>
                    <td class="code"><pre>None</pre></td>
                  </tr>
                
                  <tr>
                    <td>wrapped_callback</td>
                    <td class="code"><pre>&lt;function pin_tan_verify at 0x7f4618f44950&gt;</pre></td>
                  </tr>
                
                  <tr>
                    <td>callback_kwargs</td>
                    <td class="code"><pre>{}</pre></td>
                  </tr>
                
                  <tr>
                    <td>middleware_method</td>
                    <td class="code"><pre>&lt;bound method CsrfViewMiddleware.process_view of &lt;django.middleware.csrf.CsrfViewMiddleware object at 0x7f46190e6d68&gt;&gt;</pre></td>
                  </tr>
                
              </tbody>
            </table>
          
        </li>
      
        
        <li class="frame user">
          <code>./bank_app/captcha.py</code> in <code>pin_tan_verify</code>

          

          
            <div class="commands">
                
                    <a href="https://bank.test.taler.net/pin/verify#" onclick="return varToggle(this, &#39;139939042037192&#39;)"><span>▶</span> Local vars</a>
                
            </div>
            <table class="vars" id="v139939042037192" style="display: none;">
              <thead>
                <tr>
                  <th>Variable</th>
                  <th>Value</th>
                </tr>
              </thead>
              <tbody>
                
                  <tr>
                    <td>request</td>
                    <td class="code"><pre>&lt;WSGIRequest: POST '/pin/verify'&gt;</pre></td>
                  </tr>
                
              </tbody>
            </table>
          
        </li>
      
        
        <li class="frame user">
          <code>./bank_app/lib.py</code> in <code>check_login</code>

          
            <div class="context" id="c139939042035528">
              
                <ol start="106" class="pre-context" id="pre139939042035528" style="display: none;">
                
                  <li onclick="toggle(&#39;pre139939042035528&#39;, &#39;post139939042035528&#39;)"><pre>    return amount_dict['value'] + (amount_dict['fraction'] / 1000000)</pre></li>
                
                  <li onclick="toggle(&#39;pre139939042035528&#39;, &#39;post139939042035528&#39;)"><pre></pre></li>
                
                  <li onclick="toggle(&#39;pre139939042035528&#39;, &#39;post139939042035528&#39;)"><pre>def write_log_file(data, log_file="/tmp/django.log", flag='a'):</pre></li>
                
                  <li onclick="toggle(&#39;pre139939042035528&#39;, &#39;post139939042035528&#39;)"><pre>    f = open(log_file, flag)</pre></li>
                
                  <li onclick="toggle(&#39;pre139939042035528&#39;, &#39;post139939042035528&#39;)"><pre>    f.write(data)</pre></li>
                
                  <li onclick="toggle(&#39;pre139939042035528&#39;, &#39;post139939042035528&#39;)"><pre>    f.close()</pre></li>
                
                  <li onclick="toggle(&#39;pre139939042035528&#39;, &#39;post139939042035528&#39;)"><pre></pre></li>
                
                </ol>
              
              <ol start="113" class="context-line">
                <li onclick="toggle(&#39;pre139939042035528&#39;, &#39;post139939042035528&#39;)"><pre>def check_db(fn):</pre> <span>...</span></li></ol>
              
                <ol start="114" class="post-context" id="post139939042035528" style="display: none;">
                  
                  <li onclick="toggle(&#39;pre139939042035528&#39;, &#39;post139939042035528&#39;)"><pre>    def fake_query(request):</pre></li>
                  
                  <li onclick="toggle(&#39;pre139939042035528&#39;, &#39;post139939042035528&#39;)"><pre>        try: User.objects.get(username='Bank')</pre></li>
                  
                  <li onclick="toggle(&#39;pre139939042035528&#39;, &#39;post139939042035528&#39;)"><pre>        except User.DoesNotExist:</pre></li>
                  
                  <li onclick="toggle(&#39;pre139939042035528&#39;, &#39;post139939042035528&#39;)"><pre>            return no_bank_account_handler(request)</pre></li>
                  
                  <li onclick="toggle(&#39;pre139939042035528&#39;, &#39;post139939042035528&#39;)"><pre>        except ProgrammingError:</pre></li>
                  
                  <li onclick="toggle(&#39;pre139939042035528&#39;, &#39;post139939042035528&#39;)"><pre>            return internal_error_handler(request,</pre></li>
                  
              </ol>
              
            </div>
          

          
            <div class="commands">
                
                    <a href="https://bank.test.taler.net/pin/verify#" onclick="return varToggle(this, &#39;139939042035528&#39;)"><span>▶</span> Local vars</a>
                
            </div>
            <table class="vars" id="v139939042035528" style="display: none;">
              <thead>
                <tr>
                  <th>Variable</th>
                  <th>Value</th>
                </tr>
              </thead>
              <tbody>
                
                  <tr>
                    <td>fn</td>
                    <td class="code"><pre>&lt;function pin_tan_verify_attempt at 0x7f4618f449d8&gt;</pre></td>
                  </tr>
                
                  <tr>
                    <td>request</td>
                    <td class="code"><pre>&lt;WSGIRequest: POST '/pin/verify'&gt;</pre></td>
                  </tr>
                
              </tbody>
            </table>
          
        </li>
      
        
        <li class="frame user">
          <code>./bank_app/captcha.py</code> in <code>pin_tan_verify_attempt</code>

          
            <div class="context" id="c139939042034440">
              
                <ol start="104" class="pre-context" id="pre139939042034440" style="display: none;">
                
                  <li onclick="toggle(&#39;pre139939042034440&#39;, &#39;post139939042034440&#39;)"><pre></pre></li>
                
                  <li onclick="toggle(&#39;pre139939042034440&#39;, &#39;post139939042034440&#39;)"><pre>def pin_tan_verify_attempt(request):</pre></li>
                
                  <li onclick="toggle(&#39;pre139939042034440&#39;, &#39;post139939042034440&#39;)"><pre>    if request.method != 'POST':</pre></li>
                
                  <li onclick="toggle(&#39;pre139939042034440&#39;, &#39;post139939042034440&#39;)"><pre>        raise WrongMethod("POST")</pre></li>
                
                  <li onclick="toggle(&#39;pre139939042034440&#39;, &#39;post139939042034440&#39;)"><pre>    try:</pre></li>
                
                  <li onclick="toggle(&#39;pre139939042034440&#39;, &#39;post139939042034440&#39;)"><pre>        given = request.POST['pin_0']</pre></li>
                
                  <li onclick="toggle(&#39;pre139939042034440&#39;, &#39;post139939042034440&#39;)"><pre>        hashed_result = request.POST['pin_1']</pre></li>
                
                </ol>
              
              <ol start="111" class="context-line">
                <li onclick="toggle(&#39;pre139939042034440&#39;, &#39;post139939042034440&#39;)"><pre>    except Exception: # FIXME narrow the Exception type</pre> <span>...</span></li></ol>
              
                <ol start="112" class="post-context" id="post139939042034440" style="display: none;">
                  
                  <li onclick="toggle(&#39;pre139939042034440&#39;, &#39;post139939042034440&#39;)"><pre>        raise BadPostValue</pre></li>
                  
                  <li onclick="toggle(&#39;pre139939042034440&#39;, &#39;post139939042034440&#39;)"><pre>    hasher = hashlib.new("sha1")</pre></li>
                  
                  <li onclick="toggle(&#39;pre139939042034440&#39;, &#39;post139939042034440&#39;)"><pre>    hasher.update(settings.SECRET_KEY)</pre></li>
                  
                  <li onclick="toggle(&#39;pre139939042034440&#39;, &#39;post139939042034440&#39;)"><pre>    hasher.update(given)</pre></li>
                  
                  <li onclick="toggle(&#39;pre139939042034440&#39;, &#39;post139939042034440&#39;)"><pre>    hashed_attempt = hasher.hexdigest()</pre></li>
                  
                  <li onclick="toggle(&#39;pre139939042034440&#39;, &#39;post139939042034440&#39;)"><pre>    if hashed_attempt == hashed_result:</pre></li>
                  
              </ol>
              
            </div>
          

          
            <div class="commands">
                
                    <a href="https://bank.test.taler.net/pin/verify#" onclick="return varToggle(this, &#39;139939042034440&#39;)"><span>▶</span> Local vars</a>
                
            </div>
            <table class="vars" id="v139939042034440" style="display: none;">
              <thead>
                <tr>
                  <th>Variable</th>
                  <th>Value</th>
                </tr>
              </thead>
              <tbody>
                
                  <tr>
                    <td>hasher</td>
                    <td class="code"><pre>&lt;sha1 HASH object @ 0x7f461de254e0&gt;</pre></td>
                  </tr>
                
                  <tr>
                    <td>hashed_result</td>
                    <td class="code"><pre>'98a3e710da53dabe74c24d824a6b023c479080bf'</pre></td>
                  </tr>
                
                  <tr>
                    <td>given</td>
                    <td class="code"><pre>'5'</pre></td>
                  </tr>
                
                  <tr>
                    <td>request</td>
                    <td class="code"><pre>&lt;WSGIRequest: POST '/pin/verify'&gt;</pre></td>
                  </tr>
                
              </tbody>
            </table>
          
        </li>
      
    </ul>
  </div>
  
  <form action="http://dpaste.com/" name="pasteform" id="pasteform" method="post">

  <div id="pastebinTraceback" class="pastebin" style="display: none;">
    <input type="hidden" name="language" value="PythonConsole">
    <input type="hidden" name="title" value="TypeError at /pin/verify">
    <input type="hidden" name="source" value="Django Dpaste Agent">
    <input type="hidden" name="poster" value="Django">
    <textarea name="content" id="traceback_area" cols="140" rows="25">Environment:


Request Method: POST
Request URL: https://bank.test.taler.net/pin/verify

Django Version: 1.9.2
Python Version: 3.4.4
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'bank_app']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']



Traceback:

File "/home/test/bank-venv/lib/python3.4/site-packages/django/core/handlers/base.py" in get_response
  149.                     response = self.process_exception_by_middleware(e, request)

File "/home/test/bank-venv/lib/python3.4/site-packages/django/core/handlers/base.py" in get_response
  147.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "./bank_app/captcha.py" in pin_tan_verify


File "./bank_app/lib.py" in check_login
  113. def check_db(fn):

File "./bank_app/captcha.py" in pin_tan_verify_attempt
  111.     except Exception: # FIXME narrow the Exception type

Exception Type: TypeError at /pin/verify
Exception Value: Unicode-objects must be encoded before hashing
</textarea>
  <br><br>
  <input type="submit" value="Share this traceback on a public website">
  </div>
</form>
</div>



<div id="requestinfo">
  <h2>Request information</h2>


  <h3 id="get-info">GET</h3>
  
    <p>No GET data</p>
  

  <h3 id="post-info">POST</h3>
  
    <table class="req">
      <thead>
        <tr>
          <th>Variable</th>
          <th>Value</th>
        </tr>
      </thead>
      <tbody>
        
          <tr>
            <td>pin_0</td>
            <td class="code"><pre>'5'</pre></td>
          </tr>
        
          <tr>
            <td>pin_1</td>
            <td class="code"><pre>'98a3e710da53dabe74c24d824a6b023c479080bf'</pre></td>
          </tr>
        
          <tr>
            <td>csrfmiddlewaretoken</td>
            <td class="code"><pre>'451s8ACSdrofzUINllCLlgiTTwogQXq7'</pre></td>
          </tr>
        
      </tbody>
    </table>
  
  <h3 id="files-info">FILES</h3>
  
    <p>No FILES data</p>
  


  <h3 id="cookie-info">COOKIES</h3>
  
    <table class="req">
      <thead>
        <tr>
          <th>Variable</th>
          <th>Value</th>
        </tr>
      </thead>
      <tbody>
        
          <tr>
            <td>sessionid</td>
            <td class="code"><pre>'t1wrq4strp74bryeg1v4dcwhts6qlj5l'</pre></td>
          </tr>
        
          <tr>
            <td>csrftoken</td>
            <td class="code"><pre>'451s8ACSdrofzUINllCLlgiTTwogQXq7'</pre></td>
          </tr>
        
      </tbody>
    </table>
  

  <h3 id="meta-info">META</h3>
  <table class="req">
    <thead>
      <tr>
        <th>Variable</th>
        <th>Value</th>
      </tr>
    </thead>
    <tbody>
      
        <tr>
          <td>wsgi.input</td>
          <td class="code"><pre>&lt;uwsgi._Input object at 0x7f461ba9ea68&gt;</pre></td>
        </tr>
      
        <tr>
          <td>HTTP_DNT</td>
          <td class="code"><pre>'1'</pre></td>
        </tr>
      
        <tr>
          <td>wsgi.version</td>
          <td class="code"><pre>(1, 0)</pre></td>
        </tr>
      
        <tr>
          <td>HTTP_CACHE_CONTROL</td>
          <td class="code"><pre>'max-age=0'</pre></td>
        </tr>
      
        <tr>
          <td>HTTP_ACCEPT_LANGUAGE</td>
          <td class="code"><pre>'en-US,en;q=0.8'</pre></td>
        </tr>
      
        <tr>
          <td>wsgi.multithread</td>
          <td class="code"><pre>False</pre></td>
        </tr>
      
        <tr>
          <td>HTTPS</td>
          <td class="code"><pre>'on'</pre></td>
        </tr>
      
        <tr>
          <td>REQUEST_SCHEME</td>
          <td class="code"><pre>'https'</pre></td>
        </tr>
      
        <tr>
          <td>SCRIPT_NAME</td>
          <td class="code"><pre>''</pre></td>
        </tr>
      
        <tr>
          <td>HTTP_CONTENT_TYPE</td>
          <td class="code"><pre>'application/x-www-form-urlencoded'</pre></td>
        </tr>
      
        <tr>
          <td>CONTENT_LENGTH</td>
          <td class="code"><pre>'107'</pre></td>
        </tr>
      
        <tr>
          <td>wsgi.errors</td>
          <td class="code"><pre>&lt;_io.TextIOWrapper name=2 mode='w' encoding='UTF-8'&gt;</pre></td>
        </tr>
      
        <tr>
          <td>wsgi.multiprocess</td>
          <td class="code"><pre>False</pre></td>
        </tr>
      
        <tr>
          <td>HTTP_REFERER</td>
          <td class="code"><pre>'https://bank.test.taler.net/auth/pin/question?exchange=https%3A%2F%2Fexchange.test.taler.net%2F&amp;reserve_pub=KMPK9922NP7PKF7R2AXR795NK9XVS0TJ58HTA26XM52BNNKGHXPG&amp;amount_value=1&amp;amount_fraction=0&amp;amount_currency=PUDOS'</pre></td>
        </tr>
      
        <tr>
          <td>HTTP_CONNECTION</td>
          <td class="code"><pre>'keep-alive'</pre></td>
        </tr>
      
        <tr>
          <td>HTTP_HOST</td>
          <td class="code"><pre>'bank.test.taler.net'</pre></td>
        </tr>
      
        <tr>
          <td>SERVER_PROTOCOL</td>
          <td class="code"><pre>'HTTP/1.1'</pre></td>
        </tr>
      
        <tr>
          <td>wsgi.file_wrapper</td>
          <td class="code"><pre>''</pre></td>
        </tr>
      
        <tr>
          <td>PATH_INFO</td>
          <td class="code"><pre>'/pin/verify'</pre></td>
        </tr>
      
        <tr>
          <td>REMOTE_ADDR</td>
          <td class="code"><pre>'86.253.40.254'</pre></td>
        </tr>
      
        <tr>
          <td>HTTP_USER_AGENT</td>
          <td class="code"><pre>('Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) '
 'Chrome/49.0.2623.87 Safari/537.36')</pre></td>
        </tr>
      
        <tr>
          <td>QUERY_STRING</td>
          <td class="code"><pre>''</pre></td>
        </tr>
      
        <tr>
          <td>CSRF_COOKIE</td>
          <td class="code"><pre>'451s8ACSdrofzUINllCLlgiTTwogQXq7'</pre></td>
        </tr>
      
        <tr>
          <td>SERVER_NAME</td>
          <td class="code"><pre>'bank.test.taler.net'</pre></td>
        </tr>
      
        <tr>
          <td>uwsgi.node</td>
          <td class="code"><pre>b'tripwire'</pre></td>
        </tr>
      
        <tr>
          <td>DOCUMENT_ROOT</td>
          <td class="code"><pre>'/usr/share/nginx/html'</pre></td>
        </tr>
      
        <tr>
          <td>SERVER_PORT</td>
          <td class="code"><pre>'443'</pre></td>
        </tr>
      
        <tr>
          <td>HTTP_CONTENT_LENGTH</td>
          <td class="code"><pre>'107'</pre></td>
        </tr>
      
        <tr>
          <td>wsgi.url_scheme</td>
          <td class="code"><pre>'https'</pre></td>
        </tr>
      
        <tr>
          <td>CONTENT_TYPE</td>
          <td class="code"><pre>'application/x-www-form-urlencoded'</pre></td>
        </tr>
      
        <tr>
          <td>HTTP_UPGRADE_INSECURE_REQUESTS</td>
          <td class="code"><pre>'1'</pre></td>
        </tr>
      
        <tr>
          <td>REQUEST_URI</td>
          <td class="code"><pre>'/pin/verify'</pre></td>
        </tr>
      
        <tr>
          <td>uwsgi.version</td>
          <td class="code"><pre>b'2.0.12'</pre></td>
        </tr>
      
        <tr>
          <td>HTTP_ACCEPT_ENCODING</td>
          <td class="code"><pre>'gzip, deflate'</pre></td>
        </tr>
      
        <tr>
          <td>HTTP_COOKIE</td>
          <td class="code"><pre>('sessionid=t1wrq4strp74bryeg1v4dcwhts6qlj5l; '
 'csrftoken=451s8ACSdrofzUINllCLlgiTTwogQXq7')</pre></td>
        </tr>
      
        <tr>
          <td>REQUEST_METHOD</td>
          <td class="code"><pre>'POST'</pre></td>
        </tr>
      
        <tr>
          <td>wsgi.run_once</td>
          <td class="code"><pre>False</pre></td>
        </tr>
      
        <tr>
          <td>HTTP_ORIGIN</td>
          <td class="code"><pre>'https://bank.test.taler.net'</pre></td>
        </tr>
      
        <tr>
          <td>HTTP_ACCEPT</td>
          <td class="code"><pre>'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'</pre></td>
        </tr>
      
        <tr>
          <td>REMOTE_PORT</td>
          <td class="code"><pre>'56678'</pre></td>
        </tr>
      
    </tbody>
  </table>


  <h3 id="settings-info">Settings</h3>
  <h4>Using settings module <code>bank_project.settings</code></h4>
  <table class="req">
    <thead>
      <tr>
        <th>Setting</th>
        <th>Value</th>
      </tr>
    </thead>
    <tbody>
      
        <tr>
          <td>ADMINS</td>
          <td class="code"><pre>[]</pre></td>
        </tr>
      
        <tr>
          <td>SESSION_SAVE_EVERY_REQUEST</td>
          <td class="code"><pre>False</pre></td>
        </tr>
      
        <tr>
          <td>AUTH_PASSWORD_VALIDATORS</td>
          <td class="code"><pre>'********************'</pre></td>
        </tr>
      
        <tr>
          <td>SESSION_FILE_PATH</td>
          <td class="code"><pre>None</pre></td>
        </tr>
      
        <tr>
          <td>MESSAGE_STORAGE</td>
          <td class="code"><pre>'django.contrib.messages.storage.fallback.FallbackStorage'</pre></td>
        </tr>
      
        <tr>
          <td>X_FRAME_OPTIONS</td>
          <td class="code"><pre>'SAMEORIGIN'</pre></td>
        </tr>
      
        <tr>
          <td>CSRF_COOKIE_NAME</td>
          <td class="code"><pre>'csrftoken'</pre></td>
        </tr>
      
        <tr>
          <td>DATABASE_ROUTERS</td>
          <td class="code"><pre>[]</pre></td>
        </tr>
      
        <tr>
          <td>DEFAULT_INDEX_TABLESPACE</td>
          <td class="code"><pre>''</pre></td>
        </tr>
      
        <tr>
          <td>SESSION_COOKIE_DOMAIN</td>
          <td class="code"><pre>None</pre></td>
        </tr>
      
        <tr>
          <td>LANGUAGE_COOKIE_DOMAIN</td>
          <td class="code"><pre>None</pre></td>
        </tr>
      
        <tr>
          <td>TEMPLATE_CONTEXT_PROCESSORS</td>
          <td class="code"><pre>['django.contrib.auth.context_processors.auth',
 'django.template.context_processors.debug',
 'django.template.context_processors.i18n',
 'django.template.context_processors.media',
 'django.template.context_processors.static',
 'django.template.context_processors.tz',
 'django.contrib.messages.context_processors.messages']</pre></td>
        </tr>
      
        <tr>
          <td>CSRF_COOKIE_PATH</td>
          <td class="code"><pre>'/'</pre></td>
        </tr>
      
        <tr>
          <td>EMAIL_USE_SSL</td>
          <td class="code"><pre>False</pre></td>
        </tr>
      
        <tr>
          <td>WSGI_APPLICATION</td>
          <td class="code"><pre>'bank_project.wsgi.application'</pre></td>
        </tr>
      
        <tr>
          <td>MEDIA_ROOT</td>
          <td class="code"><pre>''</pre></td>
        </tr>
      
        <tr>
          <td>MIDDLEWARE_CLASSES</td>
          <td class="code"><pre>['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']</pre></td>
        </tr>
      
        <tr>
          <td>DATE_FORMAT</td>
          <td class="code"><pre>'N j, Y'</pre></td>
        </tr>
      
        <tr>
          <td>CSRF_COOKIE_AGE</td>
          <td class="code"><pre>31449600</pre></td>
        </tr>
      
        <tr>
          <td>EMAIL_HOST</td>
          <td class="code"><pre>'localhost'</pre></td>
        </tr>
      
        <tr>
          <td>YEAR_MONTH_FORMAT</td>
          <td class="code"><pre>'F Y'</pre></td>
        </tr>
      
        <tr>
          <td>TEST_NON_SERIALIZED_APPS</td>
          <td class="code"><pre>[]</pre></td>
        </tr>
      
        <tr>
          <td>FILE_UPLOAD_MAX_MEMORY_SIZE</td>
          <td class="code"><pre>2621440</pre></td>
        </tr>
      
        <tr>
          <td>DEFAULT_CONTENT_TYPE</td>
          <td class="code"><pre>'text/html'</pre></td>
        </tr>
      
        <tr>
          <td>SHORT_DATE_FORMAT</td>
          <td class="code"><pre>'m/d/Y'</pre></td>
        </tr>
      
        <tr>
          <td>CSRF_COOKIE_SECURE</td>
          <td class="code"><pre>False</pre></td>
        </tr>
      
        <tr>
          <td>STATIC_URL</td>
          <td class="code"><pre>'/static/'</pre></td>
        </tr>
      
        <tr>
          <td>CSRF_COOKIE_HTTPONLY</td>
          <td class="code"><pre>False</pre></td>
        </tr>
      
        <tr>
          <td>FIXTURE_DIRS</td>
          <td class="code"><pre>[]</pre></td>
        </tr>
      
        <tr>
          <td>MIGRATION_MODULES</td>
          <td class="code"><pre>{}</pre></td>
        </tr>
      
        <tr>
          <td>TEMPLATES</td>
          <td class="code"><pre>[{'APP_DIRS': True,
  'BACKEND': 'django.template.backends.django.DjangoTemplates',
  'DIRS': [],
  'OPTIONS': {'context_processors': ['django.template.context_processors.debug',
                                     'django.template.context_processors.request',
                                     'django.contrib.auth.context_processors.auth',
                                     'django.contrib.messages.context_processors.messages']}}]</pre></td>
        </tr>
      
        <tr>
          <td>SECURE_BROWSER_XSS_FILTER</td>
          <td class="code"><pre>False</pre></td>
        </tr>
      
        <tr>
          <td>STATIC_ROOT</td>
          <td class="code"><pre>'static/'</pre></td>
        </tr>
      
        <tr>
          <td>LOGIN_REDIRECT_URL</td>
          <td class="code"><pre>'/accounts/profile/'</pre></td>
        </tr>
      
        <tr>
          <td>FORMAT_MODULE_PATH</td>
          <td class="code"><pre>None</pre></td>
        </tr>
      
        <tr>
          <td>ROOT_URLCONF</td>
          <td class="code"><pre>'bank_project.urls'</pre></td>
        </tr>
      
        <tr>
          <td>INSTALLED_APPS</td>
          <td class="code"><pre>['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'bank_app']</pre></td>
        </tr>
      
        <tr>
          <td>FIRST_DAY_OF_WEEK</td>
          <td class="code"><pre>0</pre></td>
        </tr>
      
        <tr>
          <td>LOGIN_URL</td>
          <td class="code"><pre>'/accounts/login/'</pre></td>
        </tr>
      
        <tr>
          <td>TEMPLATE_DIRS</td>
          <td class="code"><pre>[]</pre></td>
        </tr>
      
        <tr>
          <td>SESSION_EXPIRE_AT_BROWSER_CLOSE</td>
          <td class="code"><pre>False</pre></td>
        </tr>
      
        <tr>
          <td>SECURE_PROXY_SSL_HEADER</td>
          <td class="code"><pre>None</pre></td>
        </tr>
      
        <tr>
          <td>SESSION_COOKIE_SECURE</td>
          <td class="code"><pre>False</pre></td>
        </tr>
      
        <tr>
          <td>SETTINGS_MODULE</td>
          <td class="code"><pre>'bank_project.settings'</pre></td>
        </tr>
      
        <tr>
          <td>USE_X_FORWARDED_PORT</td>
          <td class="code"><pre>False</pre></td>
        </tr>
      
        <tr>
          <td>USE_THOUSAND_SEPARATOR</td>
          <td class="code"><pre>False</pre></td>
        </tr>
      
        <tr>
          <td>SECRET_KEY</td>
          <td class="code"><pre>'********************'</pre></td>
        </tr>
      
        <tr>
          <td>PREPEND_WWW</td>
          <td class="code"><pre>False</pre></td>
        </tr>
      
        <tr>
          <td>IGNORABLE_404_URLS</td>
          <td class="code"><pre>[]</pre></td>
        </tr>
      
        <tr>
          <td>DEFAULT_TABLESPACE</td>
          <td class="code"><pre>''</pre></td>
        </tr>
      
        <tr>
          <td>DATABASES</td>
          <td class="code"><pre>{'default': {'ATOMIC_REQUESTS': False,
             'AUTOCOMMIT': True,
             'CONN_MAX_AGE': 0,
             'ENGINE': 'django.db.backends.postgresql_psycopg2',
             'HOST': '',
             'NAME': 'talertest',
             'OPTIONS': {},
             'PASSWORD': '********************',
             'PORT': '',
             'TEST': {'CHARSET': None,
                      'COLLATION': None,
                      'MIRROR': None,
                      'NAME': None},
             'TIME_ZONE': None,
             'USER': ''}}</pre></td>
        </tr>
      
        <tr>
          <td>USE_L10N</td>
          <td class="code"><pre>True</pre></td>
        </tr>
      
        <tr>
          <td>CACHE_MIDDLEWARE_KEY_PREFIX</td>
          <td class="code"><pre>'********************'</pre></td>
        </tr>
      
        <tr>
          <td>DATE_INPUT_FORMATS</td>
          <td class="code"><pre>['%Y-%m-%d',
 '%m/%d/%Y',
 '%m/%d/%y',
 '%b %d %Y',
 '%b %d, %Y',
 '%d %b %Y',
 '%d %b, %Y',
 '%B %d %Y',
 '%B %d, %Y',
 '%d %B %Y',
 '%d %B, %Y']</pre></td>
        </tr>
      
        <tr>
          <td>FILE_UPLOAD_HANDLERS</td>
          <td class="code"><pre>['django.core.files.uploadhandler.MemoryFileUploadHandler',
 'django.core.files.uploadhandler.TemporaryFileUploadHandler']</pre></td>
        </tr>
      
        <tr>
          <td>LANGUAGE_CODE</td>
          <td class="code"><pre>'en-us'</pre></td>
        </tr>
      
        <tr>
          <td>TEMPLATE_LOADERS</td>
          <td class="code"><pre>['django.template.loaders.filesystem.Loader',
 'django.template.loaders.app_directories.Loader']</pre></td>
        </tr>
      
        <tr>
          <td>SECURE_SSL_REDIRECT</td>
          <td class="code"><pre>False</pre></td>
        </tr>
      
        <tr>
          <td>SECURE_SSL_HOST</td>
          <td class="code"><pre>None</pre></td>
        </tr>
      
        <tr>
          <td>TEMPLATE_DEBUG</td>
          <td class="code"><pre>False</pre></td>
        </tr>
      
        <tr>
          <td>SESSION_COOKIE_HTTPONLY</td>
          <td class="code"><pre>True</pre></td>
        </tr>
      
        <tr>
          <td>DEBUG_PROPAGATE_EXCEPTIONS</td>
          <td class="code"><pre>False</pre></td>
        </tr>
      
        <tr>
          <td>TIME_INPUT_FORMATS</td>
          <td class="code"><pre>['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']</pre></td>
        </tr>
      
        <tr>
          <td>CACHE_MIDDLEWARE_ALIAS</td>
          <td class="code"><pre>'default'</pre></td>
        </tr>
      
        <tr>
          <td>DATETIME_FORMAT</td>
          <td class="code"><pre>'N j, Y, P'</pre></td>
        </tr>
      
        <tr>
          <td>TEST_RUNNER</td>
          <td class="code"><pre>'django.test.runner.DiscoverRunner'</pre></td>
        </tr>
      
        <tr>
          <td>TEMPLATE_STRING_IF_INVALID</td>
          <td class="code"><pre>''</pre></td>
        </tr>
      
        <tr>
          <td>DATETIME_INPUT_FORMATS</td>
          <td class="code"><pre>['%Y-%m-%d %H:%M:%S',
 '%Y-%m-%d %H:%M:%S.%f',
 '%Y-%m-%d %H:%M',
 '%Y-%m-%d',
 '%m/%d/%Y %H:%M:%S',
 '%m/%d/%Y %H:%M:%S.%f',
 '%m/%d/%Y %H:%M',
 '%m/%d/%Y',
 '%m/%d/%y %H:%M:%S',
 '%m/%d/%y %H:%M:%S.%f',
 '%m/%d/%y %H:%M',
 '%m/%d/%y']</pre></td>
        </tr>
      
        <tr>
          <td>ALLOWED_INCLUDE_ROOTS</td>
          <td class="code"><pre>[]</pre></td>
        </tr>
      
        <tr>
          <td>NUMBER_GROUPING</td>
          <td class="code"><pre>0</pre></td>
        </tr>
      
        <tr>
          <td>LANGUAGE_COOKIE_PATH</td>
          <td class="code"><pre>'/'</pre></td>
        </tr>
      
        <tr>
          <td>SESSION_SERIALIZER</td>
          <td class="code"><pre>'django.contrib.sessions.serializers.JSONSerializer'</pre></td>
        </tr>
      
        <tr>
          <td>DEFAULT_FILE_STORAGE</td>
          <td class="code"><pre>'django.core.files.storage.FileSystemStorage'</pre></td>
        </tr>
      
        <tr>
          <td>STATICFILES_STORAGE</td>
          <td class="code"><pre>'django.contrib.staticfiles.storage.StaticFilesStorage'</pre></td>
        </tr>
      
        <tr>
          <td>SILENCED_SYSTEM_CHECKS</td>
          <td class="code"><pre>[]</pre></td>
        </tr>
      
        <tr>
          <td>SECURE_REDIRECT_EXEMPT</td>
          <td class="code"><pre>[]</pre></td>
        </tr>
      
        <tr>
          <td>STATICFILES_FINDERS</td>
          <td class="code"><pre>['django.contrib.staticfiles.finders.FileSystemFinder',
 'django.contrib.staticfiles.finders.AppDirectoriesFinder']</pre></td>
        </tr>
      
        <tr>
          <td>LOGOUT_URL</td>
          <td class="code"><pre>'/accounts/logout/'</pre></td>
        </tr>
      
        <tr>
          <td>SIGNING_BACKEND</td>
          <td class="code"><pre>'django.core.signing.TimestampSigner'</pre></td>
        </tr>
      
        <tr>
          <td>EMAIL_TIMEOUT</td>
          <td class="code"><pre>None</pre></td>
        </tr>
      
        <tr>
          <td>TIME_ZONE</td>
          <td class="code"><pre>'UTC'</pre></td>
        </tr>
      
        <tr>
          <td>AUTH_USER_MODEL</td>
          <td class="code"><pre>'auth.User'</pre></td>
        </tr>
      
        <tr>
          <td>DEBUG</td>
          <td class="code"><pre>True</pre></td>
        </tr>
      
        <tr>
          <td>SHORT_DATETIME_FORMAT</td>
          <td class="code"><pre>'m/d/Y P'</pre></td>
        </tr>
      
        <tr>
          <td>TIME_FORMAT</td>
          <td class="code"><pre>'P'</pre></td>
        </tr>
      
        <tr>
          <td>EMAIL_HOST_PASSWORD</td>
          <td class="code"><pre>'********************'</pre></td>
        </tr>
      
        <tr>
          <td>SESSION_COOKIE_NAME</td>
          <td class="code"><pre>'sessionid'</pre></td>
        </tr>
      
        <tr>
          <td>MANAGERS</td>
          <td class="code"><pre>[]</pre></td>
        </tr>
      
        <tr>
          <td>EMAIL_BACKEND</td>
          <td class="code"><pre>'django.core.mail.backends.smtp.EmailBackend'</pre></td>
        </tr>
      
        <tr>
          <td>LOGGING</td>
          <td class="code"><pre>{}</pre></td>
        </tr>
      
        <tr>
          <td>INTERNAL_IPS</td>
          <td class="code"><pre>[]</pre></td>
        </tr>
      
        <tr>
          <td>LANGUAGE_COOKIE_NAME</td>
          <td class="code"><pre>'django_language'</pre></td>
        </tr>
      
        <tr>
          <td>DEFAULT_FROM_EMAIL</td>
          <td class="code"><pre>'webmaster@localhost'</pre></td>
        </tr>
      
        <tr>
          <td>FILE_UPLOAD_PERMISSIONS</td>
          <td class="code"><pre>None</pre></td>
        </tr>
      
        <tr>
          <td>USE_TZ</td>
          <td class="code"><pre>True</pre></td>
        </tr>
      
        <tr>
          <td>USE_I18N</td>
          <td class="code"><pre>True</pre></td>
        </tr>
      
        <tr>
          <td>DEFAULT_EXCEPTION_REPORTER_FILTER</td>
          <td class="code"><pre>'django.views.debug.SafeExceptionReporterFilter'</pre></td>
        </tr>
      
        <tr>
          <td>EMAIL_HOST_USER</td>
          <td class="code"><pre>''</pre></td>
        </tr>
      
        <tr>
          <td>FILE_CHARSET</td>
          <td class="code"><pre>'utf-8'</pre></td>
        </tr>
      
        <tr>
          <td>DEFAULT_CHARSET</td>
          <td class="code"><pre>'utf-8'</pre></td>
        </tr>
      
        <tr>
          <td>USE_X_FORWARDED_HOST</td>
          <td class="code"><pre>False</pre></td>
        </tr>
      
        <tr>
          <td>SECURE_CONTENT_TYPE_NOSNIFF</td>
          <td class="code"><pre>False</pre></td>
        </tr>
      
        <tr>
          <td>CSRF_TRUSTED_ORIGINS</td>
          <td class="code"><pre>[]</pre></td>
        </tr>
      
        <tr>
          <td>LANGUAGES_BIDI</td>
          <td class="code"><pre>['he', 'ar', 'fa', 'ur']</pre></td>
        </tr>
      
        <tr>
          <td>SESSION_COOKIE_AGE</td>
          <td class="code"><pre>1209600</pre></td>
        </tr>
      
        <tr>
          <td>CSRF_COOKIE_DOMAIN</td>
          <td class="code"><pre>None</pre></td>
        </tr>
      
        <tr>
          <td>SESSION_ENGINE</td>
          <td class="code"><pre>'django.contrib.sessions.backends.db'</pre></td>
        </tr>
      
        <tr>
          <td>ALLOWED_HOSTS</td>
          <td class="code"><pre>[]</pre></td>
        </tr>
      
        <tr>
          <td>PASSWORD_RESET_TIMEOUT_DAYS</td>
          <td class="code"><pre>'********************'</pre></td>
        </tr>
      
        <tr>
          <td>SECURE_HSTS_INCLUDE_SUBDOMAINS</td>
          <td class="code"><pre>False</pre></td>
        </tr>
      
        <tr>
          <td>MONTH_DAY_FORMAT</td>
          <td class="code"><pre>'F j'</pre></td>
        </tr>
      
        <tr>
          <td>THOUSAND_SEPARATOR</td>
          <td class="code"><pre>','</pre></td>
        </tr>
      
        <tr>
          <td>FILE_UPLOAD_DIRECTORY_PERMISSIONS</td>
          <td class="code"><pre>None</pre></td>
        </tr>
      
        <tr>
          <td>LANGUAGE_COOKIE_AGE</td>
          <td class="code"><pre>None</pre></td>
        </tr>
      
        <tr>
          <td>CSRF_FAILURE_VIEW</td>
          <td class="code"><pre>'django.views.csrf.csrf_failure'</pre></td>
        </tr>
      
        <tr>
          <td>FORCE_SCRIPT_NAME</td>
          <td class="code"><pre>None</pre></td>
        </tr>
      
        <tr>
          <td>SERVER_EMAIL</td>
          <td class="code"><pre>'root@localhost'</pre></td>
        </tr>
      
        <tr>
          <td>STATICFILES_DIRS</td>
          <td class="code"><pre>['/home/test/bank/django/bank_app/my-static']</pre></td>
        </tr>
      
        <tr>
          <td>EMAIL_SUBJECT_PREFIX</td>
          <td class="code"><pre>'[Django] '</pre></td>
        </tr>
      
        <tr>
          <td>SECURE_HSTS_SECONDS</td>
          <td class="code"><pre>0</pre></td>
        </tr>
      
        <tr>
          <td>APPEND_SLASH</td>
          <td class="code"><pre>True</pre></td>
        </tr>
      
        <tr>
          <td>EMAIL_SSL_CERTFILE</td>
          <td class="code"><pre>None</pre></td>
        </tr>
      
        <tr>
          <td>DISALLOWED_USER_AGENTS</td>
          <td class="code"><pre>[]</pre></td>
        </tr>
      
        <tr>
          <td>EMAIL_SSL_KEYFILE</td>
          <td class="code"><pre>'********************'</pre></td>
        </tr>
      
        <tr>
          <td>EMAIL_USE_TLS</td>
          <td class="code"><pre>False</pre></td>
        </tr>
      
        <tr>
          <td>CSRF_HEADER_NAME</td>
          <td class="code"><pre>'HTTP_X_CSRFTOKEN'</pre></td>
        </tr>
      
        <tr>
          <td>EMAIL_PORT</td>
          <td class="code"><pre>25</pre></td>
        </tr>
      
        <tr>
          <td>ABSOLUTE_URL_OVERRIDES</td>
          <td class="code"><pre>{}</pre></td>
        </tr>
      
        <tr>
          <td>LOGGING_CONFIG</td>
          <td class="code"><pre>'logging.config.dictConfig'</pre></td>
        </tr>
      
        <tr>
          <td>AUTHENTICATION_BACKENDS</td>
          <td class="code"><pre>['django.contrib.auth.backends.ModelBackend']</pre></td>
        </tr>
      
        <tr>
          <td>CACHES</td>
          <td class="code"><pre>{'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}</pre></td>
        </tr>
      
        <tr>
          <td>LOCALE_PATHS</td>
          <td class="code"><pre>[]</pre></td>
        </tr>
      
        <tr>
          <td>FILE_UPLOAD_TEMP_DIR</td>
          <td class="code"><pre>None</pre></td>
        </tr>
      
        <tr>
          <td>DECIMAL_SEPARATOR</td>
          <td class="code"><pre>'.'</pre></td>
        </tr>
      
        <tr>
          <td>PASSWORD_HASHERS</td>
          <td class="code"><pre>'********************'</pre></td>
        </tr>
      
        <tr>
          <td>SESSION_COOKIE_PATH</td>
          <td class="code"><pre>'/'</pre></td>
        </tr>
      
        <tr>
          <td>MEDIA_URL</td>
          <td class="code"><pre>''</pre></td>
        </tr>
      
        <tr>
          <td>USE_ETAGS</td>
          <td class="code"><pre>False</pre></td>
        </tr>
      
        <tr>
          <td>BASE_DIR</td>
          <td class="code"><pre>'/home/test/bank/django'</pre></td>
        </tr>
      
        <tr>
          <td>CACHE_MIDDLEWARE_SECONDS</td>
          <td class="code"><pre>600</pre></td>
        </tr>
      
        <tr>
          <td>LANGUAGES</td>
          <td class="code"><pre>[('af', 'Afrikaans'),
 ('ar', 'Arabic'),
 ('ast', 'Asturian'),
 ('az', 'Azerbaijani'),
 ('bg', 'Bulgarian'),
 ('be', 'Belarusian'),
 ('bn', 'Bengali'),
 ('br', 'Breton'),
 ('bs', 'Bosnian'),
 ('ca', 'Catalan'),
 ('cs', 'Czech'),
 ('cy', 'Welsh'),
 ('da', 'Danish'),
 ('de', 'German'),
 ('el', 'Greek'),
 ('en', 'English'),
 ('en-au', 'Australian English'),
 ('en-gb', 'British English'),
 ('eo', 'Esperanto'),
 ('es', 'Spanish'),
 ('es-ar', 'Argentinian Spanish'),
 ('es-co', 'Colombian Spanish'),
 ('es-mx', 'Mexican Spanish'),
 ('es-ni', 'Nicaraguan Spanish'),
 ('es-ve', 'Venezuelan Spanish'),
 ('et', 'Estonian'),
 ('eu', 'Basque'),
 ('fa', 'Persian'),
 ('fi', 'Finnish'),
 ('fr', 'French'),
 ('fy', 'Frisian'),
 ('ga', 'Irish'),
 ('gd', 'Scottish Gaelic'),
 ('gl', 'Galician'),
 ('he', 'Hebrew'),
 ('hi', 'Hindi'),
 ('hr', 'Croatian'),
 ('hu', 'Hungarian'),
 ('ia', 'Interlingua'),
 ('id', 'Indonesian'),
 ('io', 'Ido'),
 ('is', 'Icelandic'),
 ('it', 'Italian'),
 ('ja', 'Japanese'),
 ('ka', 'Georgian'),
 ('kk', 'Kazakh'),
 ('km', 'Khmer'),
 ('kn', 'Kannada'),
 ('ko', 'Korean'),
 ('lb', 'Luxembourgish'),
 ('lt', 'Lithuanian'),
 ('lv', 'Latvian'),
 ('mk', 'Macedonian'),
 ('ml', 'Malayalam'),
 ('mn', 'Mongolian'),
 ('mr', 'Marathi'),
 ('my', 'Burmese'),
 ('nb', 'Norwegian Bokmal'),
 ('ne', 'Nepali'),
 ('nl', 'Dutch'),
 ('nn', 'Norwegian Nynorsk'),
 ('os', 'Ossetic'),
 ('pa', 'Punjabi'),
 ('pl', 'Polish'),
 ('pt', 'Portuguese'),
 ('pt-br', 'Brazilian Portuguese'),
 ('ro', 'Romanian'),
 ('ru', 'Russian'),
 ('sk', 'Slovak'),
 ('sl', 'Slovenian'),
 ('sq', 'Albanian'),
 ('sr', 'Serbian'),
 ('sr-latn', 'Serbian Latin'),
 ('sv', 'Swedish'),
 ('sw', 'Swahili'),
 ('ta', 'Tamil'),
 ('te', 'Telugu'),
 ('th', 'Thai'),
 ('tr', 'Turkish'),
 ('tt', 'Tatar'),
 ('udm', 'Udmurt'),
 ('uk', 'Ukrainian'),
 ('ur', 'Urdu'),
 ('vi', 'Vietnamese'),
 ('zh-hans', 'Simplified Chinese'),
 ('zh-hant', 'Traditional Chinese')]</pre></td>
        </tr>
      
        <tr>
          <td>SESSION_CACHE_ALIAS</td>
          <td class="code"><pre>'default'</pre></td>
        </tr>
      
    </tbody>
  </table>

</div>

  <div id="explanation">
    <p>
      You're seeing this error because you have <code>DEBUG = True</code> in your
      Django settings file. Change that to <code>False</code>, and Django will
      display a standard page generated by the handler for this status code.
    </p>
  </div>



</body></html>
TypeError at _pin_verify.html (61,287 bytes)   

Relationships

duplicate of 0004247 closedMarcello Stanisci TypeError at /pin/verify 

Activities

Torsten Grothoff

2016-03-20 20:23

reporter   ~0010254

it is rely urgent!

Issue History

Date Modified Username Field Change
2016-03-20 09:22 Torsten Grothoff New Issue
2016-03-20 09:22 Torsten Grothoff File Added: TypeError at _pin_verify.html
2016-03-20 09:27 Torsten Grothoff Tag Attached: urgent
2016-03-20 20:23 Torsten Grothoff Note Added: 0010254
2016-03-20 21:53 Torsten Grothoff Issue cloned: 0004249
2016-03-21 00:21 Christian Grothoff Assigned To => Marcello Stanisci
2016-03-21 00:21 Christian Grothoff Priority immediate => normal
2016-03-21 00:21 Christian Grothoff Status new => assigned
2016-03-21 00:21 Christian Grothoff Category other => bank (demonstrator)
2016-03-21 00:21 Christian Grothoff Product Version => 0.0
2016-03-21 00:21 Christian Grothoff Target Version => 0.0
2016-03-21 00:21 Christian Grothoff Relationship added duplicate of 0004247
2016-03-21 15:03 Marcello Stanisci Status assigned => resolved
2016-03-21 15:03 Marcello Stanisci Resolution open => duplicate
2016-03-22 17:13 Christian Grothoff Status resolved => closed
2016-03-22 17:13 Christian Grothoff Fixed in Version => 0.0
2016-11-08 13:29 Christian Grothoff Tag Detached: urgent
2022-08-23 20:26 Christian Grothoff Category bank (demonstrator) => py bank (demonstrator, obsolete)
2023-12-03 01:23 Christian Grothoff Category py bank (demonstrator, obsolete) => obsolete componet
2023-12-11 20:08 Florian Dold Category obsolete componet => obsolete component