I’d like to test the Unicode handling of my code. Is there anything I can put in random.choice() to select from the entire Unicode range, preferably not an external module? Neither Google nor StackOverflow seems to have an answer.
Edit: It looks like this is more complex than expected, so I’ll rephrase the question – Is the following code sufficient to generate all valid non-control characters in Unicode?
unicode_glyphs = ''.join(
unichr(char)
for char in xrange(1114112) # 0x10ffff + 1
if unicodedata.category(unichr(char))[0] in ('LMNPSZ')
)
There is a UTF-8 stress test from Markus Kuhn you could use.
See also Really Good, Bad UTF-8 example test data.