def test_single_char_arguments(): """Tests failures for passing invalid inputs to char-accepting functions""" def toobig_message(r): return "Character code point not in range({0:#x})".format(r) toolong_message = "Expected a character, but multi-character string found" assert m.ord_char(u'a') == 0x61 # simple ASCII assert m.ord_char_lv(u'b') == 0x62 assert m.ord_char( u'é' ) == 0xE9 # requires 2 bytes in utf-8, but can be stuffed in a char with pytest.raises(ValueError) as excinfo: assert m.ord_char( u'Ā') == 0x100 # requires 2 bytes, doesn't fit in a char assert str(excinfo.value) == toobig_message(0x100) with pytest.raises(ValueError) as excinfo: assert m.ord_char(u'ab') assert str(excinfo.value) == toolong_message assert m.ord_char16(u'a') == 0x61 assert m.ord_char16(u'é') == 0xE9 assert m.ord_char16_lv(u'ê') == 0xEA assert m.ord_char16(u'Ā') == 0x100 assert m.ord_char16(u'‽') == 0x203d assert m.ord_char16(u'♥') == 0x2665 assert m.ord_char16_lv(u'♡') == 0x2661 with pytest.raises(ValueError) as excinfo: assert m.ord_char16(u'🎂') == 0x1F382 # requires surrogate pair assert str(excinfo.value) == toobig_message(0x10000) with pytest.raises(ValueError) as excinfo: assert m.ord_char16(u'aa') assert str(excinfo.value) == toolong_message assert m.ord_char32(u'a') == 0x61 assert m.ord_char32(u'é') == 0xE9 assert m.ord_char32(u'Ā') == 0x100 assert m.ord_char32(u'‽') == 0x203d assert m.ord_char32(u'♥') == 0x2665 assert m.ord_char32(u'🎂') == 0x1F382 with pytest.raises(ValueError) as excinfo: assert m.ord_char32(u'aa') assert str(excinfo.value) == toolong_message assert m.ord_wchar(u'a') == 0x61 assert m.ord_wchar(u'é') == 0xE9 assert m.ord_wchar(u'Ā') == 0x100 assert m.ord_wchar(u'‽') == 0x203d assert m.ord_wchar(u'♥') == 0x2665 if m.wchar_size == 2: with pytest.raises(ValueError) as excinfo: assert m.ord_wchar(u'🎂') == 0x1F382 # requires surrogate pair assert str(excinfo.value) == toobig_message(0x10000) else: assert m.ord_wchar(u'🎂') == 0x1F382 with pytest.raises(ValueError) as excinfo: assert m.ord_wchar(u'aa') assert str(excinfo.value) == toolong_message
def test_single_char_arguments(): """Tests failures for passing invalid inputs to char-accepting functions""" def toobig_message(r): return "Character code point not in range({0:#x})".format(r) toolong_message = "Expected a character, but multi-character string found" assert m.ord_char(u'a') == 0x61 # simple ASCII assert m.ord_char_lv(u'b') == 0x62 assert m.ord_char(u'é') == 0xE9 # requires 2 bytes in utf-8, but can be stuffed in a char with pytest.raises(ValueError) as excinfo: assert m.ord_char(u'Ā') == 0x100 # requires 2 bytes, doesn't fit in a char assert str(excinfo.value) == toobig_message(0x100) with pytest.raises(ValueError) as excinfo: assert m.ord_char(u'ab') assert str(excinfo.value) == toolong_message assert m.ord_char16(u'a') == 0x61 assert m.ord_char16(u'é') == 0xE9 assert m.ord_char16_lv(u'ê') == 0xEA assert m.ord_char16(u'Ā') == 0x100 assert m.ord_char16(u'‽') == 0x203d assert m.ord_char16(u'♥') == 0x2665 assert m.ord_char16_lv(u'♡') == 0x2661 with pytest.raises(ValueError) as excinfo: assert m.ord_char16(u'🎂') == 0x1F382 # requires surrogate pair assert str(excinfo.value) == toobig_message(0x10000) with pytest.raises(ValueError) as excinfo: assert m.ord_char16(u'aa') assert str(excinfo.value) == toolong_message assert m.ord_char32(u'a') == 0x61 assert m.ord_char32(u'é') == 0xE9 assert m.ord_char32(u'Ā') == 0x100 assert m.ord_char32(u'‽') == 0x203d assert m.ord_char32(u'♥') == 0x2665 assert m.ord_char32(u'🎂') == 0x1F382 with pytest.raises(ValueError) as excinfo: assert m.ord_char32(u'aa') assert str(excinfo.value) == toolong_message assert m.ord_wchar(u'a') == 0x61 assert m.ord_wchar(u'é') == 0xE9 assert m.ord_wchar(u'Ā') == 0x100 assert m.ord_wchar(u'‽') == 0x203d assert m.ord_wchar(u'♥') == 0x2665 if m.wchar_size == 2: with pytest.raises(ValueError) as excinfo: assert m.ord_wchar(u'🎂') == 0x1F382 # requires surrogate pair assert str(excinfo.value) == toobig_message(0x10000) else: assert m.ord_wchar(u'🎂') == 0x1F382 with pytest.raises(ValueError) as excinfo: assert m.ord_wchar(u'aa') assert str(excinfo.value) == toolong_message
def test_single_char_arguments(): """Tests failures for passing invalid inputs to char-accepting functions""" def toobig_message(r): return "Character code point not in range({0:#x})".format(r) toolong_message = "Expected a character, but multi-character string found" assert m.ord_char(u"a") == 0x61 # simple ASCII assert m.ord_char_lv(u"b") == 0x62 assert (m.ord_char(u"é") == 0xE9 ) # requires 2 bytes in utf-8, but can be stuffed in a char with pytest.raises(ValueError) as excinfo: assert m.ord_char( u"Ā") == 0x100 # requires 2 bytes, doesn't fit in a char assert str(excinfo.value) == toobig_message(0x100) with pytest.raises(ValueError) as excinfo: assert m.ord_char(u"ab") assert str(excinfo.value) == toolong_message assert m.ord_char16(u"a") == 0x61 assert m.ord_char16(u"é") == 0xE9 assert m.ord_char16_lv(u"ê") == 0xEA assert m.ord_char16(u"Ā") == 0x100 assert m.ord_char16(u"‽") == 0x203D assert m.ord_char16(u"♥") == 0x2665 assert m.ord_char16_lv(u"♡") == 0x2661 with pytest.raises(ValueError) as excinfo: assert m.ord_char16(u"🎂") == 0x1F382 # requires surrogate pair assert str(excinfo.value) == toobig_message(0x10000) with pytest.raises(ValueError) as excinfo: assert m.ord_char16(u"aa") assert str(excinfo.value) == toolong_message assert m.ord_char32(u"a") == 0x61 assert m.ord_char32(u"é") == 0xE9 assert m.ord_char32(u"Ā") == 0x100 assert m.ord_char32(u"‽") == 0x203D assert m.ord_char32(u"♥") == 0x2665 assert m.ord_char32(u"🎂") == 0x1F382 with pytest.raises(ValueError) as excinfo: assert m.ord_char32(u"aa") assert str(excinfo.value) == toolong_message assert m.ord_wchar(u"a") == 0x61 assert m.ord_wchar(u"é") == 0xE9 assert m.ord_wchar(u"Ā") == 0x100 assert m.ord_wchar(u"‽") == 0x203D assert m.ord_wchar(u"♥") == 0x2665 if m.wchar_size == 2: with pytest.raises(ValueError) as excinfo: assert m.ord_wchar(u"🎂") == 0x1F382 # requires surrogate pair assert str(excinfo.value) == toobig_message(0x10000) else: assert m.ord_wchar(u"🎂") == 0x1F382 with pytest.raises(ValueError) as excinfo: assert m.ord_wchar(u"aa") assert str(excinfo.value) == toolong_message if hasattr(m, "has_u8string"): assert m.ord_char8(u"a") == 0x61 # simple ASCII assert m.ord_char8_lv(u"b") == 0x62 assert (m.ord_char8(u"é") == 0xE9 ) # requires 2 bytes in utf-8, but can be stuffed in a char with pytest.raises(ValueError) as excinfo: assert m.ord_char8( u"Ā") == 0x100 # requires 2 bytes, doesn't fit in a char assert str(excinfo.value) == toobig_message(0x100) with pytest.raises(ValueError) as excinfo: assert m.ord_char8(u"ab") assert str(excinfo.value) == toolong_message