def handle_invalid_domain(search_term_as_hex): """Called when no valid domain found in GET param, creates a suggestion to return to the user. """ decoded_search = None try: decoded_search = tools.decode_domain(search_term_as_hex) except: pass if decoded_search is not None: suggestion = tools.suggest_domain(decoded_search) if suggestion is not None: app.logger.info( 'Not a valid domain in GET: {}, suggesting: {}'.format( search_term_as_hex, suggestion)) encoded_suggestion = tools.encode_domain(suggestion) return flask.redirect( '/error/0?suggestion={}'.format(encoded_suggestion)) app.logger.info('Not a valid domain in GET: {}'.format(search_term_as_hex)) return flask.redirect('/error/0')
def test_decode_encoded_invalid_ascii_domain(): """Weird edge cases with non-domains that were causing issues.""" assert tools.encode_domain('example') == '6578616d706c65' assert tools.decode_domain('6578616d706c65') == 'example' assert tools.decode_domain(u'6578616d706c65') == 'example'
def test_decode_encoded_unicode_punycoded_domain(): # www.xn--xampl-91ef.com in hex assert tools.decode_domain('7777772e786e2d2d78616d706c2d393165662e636f6d' ) == u'www.\u0454xampl\u0454.com'
def test_decode_encoded_ascii_domain(): assert tools.decode_domain( '7777772e6578616d706c652e636f6d') == 'www.example.com'