def setUp(self) -> None: "Test setup." from redbot.message import DummyMsg self.message = DummyMsg() self.set_context(self.message)
def setUp(self): self.red = DummyMsg()
class GeneralHeaderTesters(unittest.TestCase): def setUp(self): self.red = DummyMsg() def test_unquote_string(self): i = 0 for (instr, expected_str, expected_notes) in [ ('foo', 'foo', []), ('"foo"', 'foo', []), (r'"fo\"o"', 'fo"o', []), (r'"f\"o\"o"', 'f"o"o', []), (r'"fo\\o"', r'fo\o', []), (r'"f\\o\\o"', r'f\o\o', []), (r'"fo\o"', 'foo', []), ]: out_str = headers.unquote_string(str(instr)) self.assertEqual( expected_str, out_str, "[%s] %s != %s" % (i, str(expected_str), str(out_str))) i += 1 def test_split_string(self): i = 0 for (instr, expected_outlist, item, split) in [ ('"abc", "def"', ['"abc"', '"def"'], rfc7230.quoted_string, r"\s*,\s*"), (r'"\"ab", "c\d"', [r'"\"ab"', r'"c\d"'], rfc7230.quoted_string, r"\s*,\s*") ]: self.red.__init__() outlist = headers.split_string(str(instr), item, split) self.assertEqual( expected_outlist, outlist, "[%s] %s != %s" % (i, str(expected_outlist), str(outlist))) i += 1 def test_parse_params(self): i = 0 for (instr, expected_pd, expected_notes, delim) in [ ('foo=bar', { 'foo': 'bar' }, [], ';'), ('foo="bar"', { 'foo': 'bar' }, [], ';'), ('foo="bar"; baz=bat', { 'foo': 'bar', 'baz': 'bat' }, [], ';'), ('foo="bar"; baz="b=t"; bam="boom"', { 'foo': 'bar', 'baz': 'b=t', 'bam': 'boom' }, [], ';'), (r'foo="b\"ar"', { 'foo': 'b"ar' }, [], ';'), (r'foo=bar; foo=baz', { 'foo': 'baz' }, [headers.PARAM_REPEATS], ';'), ('foo=bar; baz="b;at"', { 'foo': 'bar', 'baz': "b;at" }, [], ';'), ('foo=bar, baz="bat"', { 'foo': 'bar', 'baz': "bat" }, [], ','), ('foo=bar, baz="b,at"', { 'foo': 'bar', 'baz': "b,at" }, [], ','), ("foo=bar; baz='bat'", { 'foo': 'bar', 'baz': "'bat'" }, [headers.PARAM_SINGLE_QUOTED], ';'), ("foo*=\"UTF-8''a%cc%88.txt\"", { 'foo*': u'a\u0308.txt' }, [headers.PARAM_STAR_QUOTED], ';'), ("foo*=''a%cc%88.txt", {}, [headers.PARAM_STAR_NOCHARSET], ';'), ("foo*=utf-16''a%cc%88.txt", {}, [headers.PARAM_STAR_CHARSET], ';'), ("nostar*=utf-8''a%cc%88.txt", {}, [headers.PARAM_STAR_BAD], ';'), ("NOstar*=utf-8''a%cc%88.txt", {}, [headers.PARAM_STAR_BAD], ';') ]: self.red.__init__() param_dict = headers.parse_params( instr, partial(self.red.add_note, "test"), ['nostar'], delim) diff = set([n.__name__ for n in expected_notes ]).symmetric_difference(set(self.red.note_classes)) self.assertEqual(len(diff), 0, "[%s] Mismatched notes: %s" % (i, diff)) self.assertEqual( expected_pd, param_dict, "[%s] %s != %s" % (i, str(expected_pd), str(param_dict))) i += 1
class GeneralHeaderTesters(unittest.TestCase): def setUp(self): self.red = DummyMsg() def test_unquote_string(self): i = 0 for (instr, expected_str, expected_notes) in [ ('foo', 'foo', []), ('"foo"', 'foo', []), (r'"fo\"o"', 'fo"o', []), (r'"f\"o\"o"', 'f"o"o', []), (r'"fo\\o"', r'fo\o', []), (r'"f\\o\\o"', r'f\o\o', []), (r'"fo\o"', 'foo', []), ]: self.red.__init__() out_str = headers.unquote_string(unicode(instr)) diff = set( [n.__name__ for n in expected_notes]).symmetric_difference( set(self.red.note_classes) ) self.assertEqual(len(diff), 0, "[%s] Mismatched notes: %s" % (i, diff) ) self.assertEqual(expected_str, out_str, "[%s] %s != %s" % (i, str(expected_str), str(out_str))) i += 1 def test_split_string(self): i = 0 for (instr, expected_outlist, item, split) in [ ('"abc", "def"', ['"abc"', '"def"'], syntax.QUOTED_STRING, r"\s*,\s*" ), (r'"\"ab", "c\d"', [r'"\"ab"', r'"c\d"'], syntax.QUOTED_STRING, r"\s*,\s*" ) ]: self.red.__init__() outlist = headers.split_string(unicode(instr), item, split) self.assertEqual(expected_outlist, outlist, "[%s] %s != %s" % (i, str(expected_outlist), str(outlist))) i += 1 def test_parse_params(self): i = 0 for (instr, expected_pd, expected_notes, delim) in [ ('foo=bar', {'foo': 'bar'}, [], ';'), ('foo="bar"', {'foo': 'bar'}, [], ';'), ('foo="bar"; baz=bat', {'foo': 'bar', 'baz': 'bat'}, [], ';'), ('foo="bar"; baz="b=t"; bam="boom"', {'foo': 'bar', 'baz': 'b=t', 'bam': 'boom'}, [], ';' ), (r'foo="b\"ar"', {'foo': 'b"ar'}, [], ';'), (r'foo=bar; foo=baz', {'foo': 'baz'}, [rs.PARAM_REPEATS], ';' ), ('foo=bar; baz="b;at"', {'foo': 'bar', 'baz': "b;at"}, [], ';' ), ('foo=bar, baz="bat"', {'foo': 'bar', 'baz': "bat"}, [], ',' ), ('foo=bar, baz="b,at"', {'foo': 'bar', 'baz': "b,at"}, [], ',' ), ("foo=bar; baz='bat'", {'foo': 'bar', 'baz': "'bat'"}, [rs.PARAM_SINGLE_QUOTED], ';' ), ("foo*=\"UTF-8''a%cc%88.txt\"", {'foo*': u'a\u0308.txt'}, [rs.PARAM_STAR_QUOTED], ';' ), ("foo*=''a%cc%88.txt", {}, [rs.PARAM_STAR_NOCHARSET], ';' ), ("foo*=utf-16''a%cc%88.txt", {}, [rs.PARAM_STAR_CHARSET], ';' ), ("nostar*=utf-8''a%cc%88.txt", {}, [rs.PARAM_STAR_BAD], ';' ), ("NOstar*=utf-8''a%cc%88.txt", {}, [rs.PARAM_STAR_BAD], ';' ) ]: self.red.__init__() param_dict = headers.parse_params( self.red, 'test', instr, ['nostar'], delim ) diff = set( [n.__name__ for n in expected_notes]).symmetric_difference( set(self.red.note_classes) ) self.assertEqual(len(diff), 0, "[%s] Mismatched notes: %s" % (i, diff) ) self.assertEqual(expected_pd, param_dict, "[%s] %s != %s" % (i, str(expected_pd), str(param_dict))) i += 1