﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
26462	UnicodeEncodeError when warning about too long caching keys on Python 2	Przemysław Suliga	nobody	"On Python 2 `warnings.warn()` expects a `message` that can be coerced to a `str`.

{{{
Python 2.7.10 (default, Oct 14 2015, 16:09:02) 
[GCC 5.2.1 20151010] on linux2
Type ""help"", ""copyright"", ""credits"" or ""license"" for more information.
>>> import warnings
>>> warnings.warn(u'清')
Traceback (most recent call last):
  File ""<stdin>"", line 1, in <module>
  File ""/usr/lib/python2.7/warnings.py"", line 33, in _show_warning
    file.write(formatwarning(message, category, filename, lineno, line))
  File ""/usr/lib/python2.7/warnings.py"", line 42, in formatwarning
    s =  ""%s:%s: %s: %s\n"" % (filename, lineno, category.__name__, message)
UnicodeEncodeError: 'ascii' codec can't encode character u'\u6e05' in position 0: ordinal not in range(128)
}}}

`BaseCache.validate_key()` [https://github.com/django/django/blob/d356bb653f4d90ae9809e5a051791ded39010c38/django/core/cache/backends/base.py#L237-L238 fails to create a proper `message`] by using `""%s""` to interpolate the key into the `message` instead of using `""%r""`. "	Bug	closed	Core (Cache system)	dev	Normal	fixed			Accepted	1	0	0	0	0	0
