# -*- coding: utf-8 -*- from __future__ import unicode_literals from nose.tools import eq_ from bleach import clean, linkify from bleach.tests.tools import in_ def test_japanese_safe_simple(): eq_('ヘルプとチュートリアル', clean('ヘルプとチュートリアル')) eq_('ヘルプとチュートリアル', linkify('ヘルプとチュートリアル')) def test_japanese_strip(): eq_('ヘルプとチュートリアル', clean('ヘルプとチュートリアル')) eq_('<span>ヘルプとチュートリアル</span>', clean('ヘルプとチュートリアル')) def test_russian_simple(): eq_('Домашняя', clean('Домашняя')) eq_('Домашняя', linkify('Домашняя')) def test_mixed(): eq_('Домашняяヘルプとチュートリアル', clean('Домашняяヘルプとチュートリアル')) def test_mixed_linkify(): in_(('Домашняя ' 'http://example.com ヘルプとチュートリアル', 'Домашняя ' 'http://example.com ヘルプとチュートリアル'), linkify('Домашняя http://example.com ヘルプとチュートリアル')) def test_url_utf8(): """Allow UTF8 characters in URLs themselves.""" outs = ('{0!s}', '{0!s}') out = lambda url: [x.format(url) for x in outs] tests = ( ('http://éxámplé.com/', out('http://éxámplé.com/')), ('http://éxámplé.com/íàñá/', out('http://éxámplé.com/íàñá/')), ('http://éxámplé.com/íàñá/?foo=bar', out('http://éxámplé.com/íàñá/?foo=bar')), ('http://éxámplé.com/íàñá/?fóo=bár', out('http://éxámplé.com/íàñá/?fóo=bár')), ) def check(test, expected_output): in_(expected_output, linkify(test)) for test, expected_output in tests: yield check, test, expected_output