summaryrefslogtreecommitdiff
path: root/mimeparse_test.py
diff options
context:
space:
mode:
authorStefan Wojcik <wojcikstefan@gmail.com>2016-01-26 20:40:47 -0800
committerStefan Wojcik <wojcikstefan@gmail.com>2016-01-26 20:40:47 -0800
commitf59ab82ee0348f51ddb99a5d104902ea50eb02cc (patch)
treed824d74ecac73a6f54e3de600efaa5085eca15d2 /mimeparse_test.py
parent2ae1bbeaeb8827e9debfbb3254c732ee0ccff1c3 (diff)
downloadpython-mimeparse-f59ab82ee0348f51ddb99a5d104902ea50eb02cc.tar.gz
raise an exception when the header cannot be parsed + better handling of unit tests
Diffstat (limited to 'mimeparse_test.py')
-rwxr-xr-xmimeparse_test.py95
1 files changed, 54 insertions, 41 deletions
diff --git a/mimeparse_test.py b/mimeparse_test.py
index d179982..0ca36c8 100755
--- a/mimeparse_test.py
+++ b/mimeparse_test.py
@@ -16,45 +16,58 @@ __author__ = 'Ade Oshineye'
__email__ = "ade@oshineye.com"
__credits__ = ""
-
-def test_parse_media_range(args, expected):
- expected = tuple(expected)
- result = mimeparse.parse_media_range(args)
- message = "Expected: '%s' but got %s" % (expected, result)
- assert expected == result, message
-
-
-def test_quality(args, expected):
- result = mimeparse.quality(args[0], args[1])
- message = "Expected: '%s' but got %s" % (expected, result)
- assert expected == result, message
-
-
-def test_best_match(args, expected):
- result = mimeparse.best_match(args[0], args[1])
- message = "Expected: '%s' but got %s" % (expected, result)
- assert expected == result, message
-
-
-def test_parse_mime_type(args, expected):
- expected = tuple(expected)
- result = mimeparse.parse_mime_type(args)
- message = "Expected: '%s' but got %s" % (expected, result)
- assert expected == result, message
-
-
-def add_tests(suite, json_object, func_name, test_func):
- test_data = json_object[func_name]
- for test_datum in test_data:
- args, expected = test_datum[0], test_datum[1]
- desc = "%s(%s) with expected result: %s" % (func_name, str(args),
- str(expected))
- if len(test_datum) == 3:
- desc = test_datum[2] + " : " + desc
- func = partial(test_func, *(args, expected))
- testcase = unittest.FunctionTestCase(func, description=desc)
- suite.addTest(testcase)
-
+class MimeParseTestCase(unittest.TestCase):
+
+ def setUp(self):
+ super(MimeParseTestCase, self).setUp()
+ with open("testdata.json") as f:
+ self.test_data = json.load(f)
+
+ def _test_parse_media_range(self, args, expected):
+ expected = tuple(expected)
+ result = mimeparse.parse_media_range(args)
+ message = "Expected: '%s' but got %s" % (expected, result)
+ self.assertEqual(expected, result, message)
+
+
+ def _test_quality(self, args, expected):
+ result = mimeparse.quality(args[0], args[1])
+ message = "Expected: '%s' but got %s" % (expected, result)
+ self.assertEqual(expected, result, message)
+
+
+ def _test_best_match(self, args, expected, description):
+ if expected is None:
+ self.assertRaises(mimeparse.MimeTypeParseException, mimeparse.best_match, args[0], args[1])
+ else:
+ result = mimeparse.best_match(args[0], args[1])
+ message = "Expected: '%s' but got %s. Description for this test: %s" % (expected, result, description)
+ self.assertEqual(expected, result, message)
+
+ def _test_parse_mime_type(self, args, expected):
+ if expected is None:
+ self.assertRaises(mimeparse.MimeTypeParseException, mimeparse.parse_mime_type, args)
+ else:
+ expected = tuple(expected)
+ result = mimeparse.parse_mime_type(args)
+ message = "Expected: '%s' but got %s" % (expected, result)
+ self.assertEqual(expected, result, message)
+
+ def test_parse_media_range(self):
+ for args, expected in self.test_data['parse_media_range']:
+ self._test_parse_media_range(args, expected)
+
+ def test_quality(self):
+ for args, expected in self.test_data['quality']:
+ self._test_quality(args, expected)
+
+ def test_best_match(self):
+ for args, expected, description in self.test_data['best_match']:
+ self._test_best_match(args, expected, description)
+
+ def test_parse_mime_type(self):
+ for args, expected in self.test_data['parse_mime_type']:
+ self._test_parse_mime_type(args, expected)
def run_tests():
json_object = json.load(open("testdata.json"))
@@ -69,5 +82,5 @@ def run_tests():
test_runner.run(suite)
-if __name__ == "__main__":
- run_tests()
+if __name__ == '__main__':
+ unittest.main()