From cab7cf080fced108efc1ec8e7e8f7470987fde70 Mon Sep 17 00:00:00 2001 From: Michał Górny Date: Thu, 23 Nov 2017 22:02:56 +0100 Subject: manifest: Encode all C0/C1 control characters + DEL --- tests/test_manifest.py | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'tests/test_manifest.py') diff --git a/tests/test_manifest.py b/tests/test_manifest.py index c327521..fe1a060 100644 --- a/tests/test_manifest.py +++ b/tests/test_manifest.py @@ -465,6 +465,27 @@ class ManifestPathEncodingTest(unittest.TestCase): self.assertListEqual(list(m.to_list()), ['DATA', 'tes\\x00t', '32']) + def test_encode_bell_in_filename(self): + m = gemato.manifest.new_manifest_entry('DATA', + 'tes\at', 32, {}) + self.assertEqual(m.path, 'tes\at') + self.assertListEqual(list(m.to_list()), + ['DATA', 'tes\\x07t', '32']) + + def test_encode_del_in_filename(self): + m = gemato.manifest.new_manifest_entry('DATA', + 'tes\x7Ft', 32, {}) + self.assertEqual(m.path, 'tes\x7Ft') + self.assertListEqual(list(m.to_list()), + ['DATA', 'tes\\x7Ft', '32']) + + def test_encode_pad_in_filename(self): + m = gemato.manifest.new_manifest_entry('DATA', + u'tes\u0080t', 32, {}) + self.assertEqual(m.path, u'tes\u0080t') + self.assertListEqual(list(m.to_list()), + ['DATA', 'tes\\u0080t', '32']) + def test_encode_backslash_in_filename(self): m = gemato.manifest.new_manifest_entry('DATA', 'tes\\t', 32, {}) @@ -512,6 +533,26 @@ class ManifestPathEncodingTest(unittest.TestCase): 'tes\\x00t', 32]) self.assertEqual(m.path, 'tes\x00t') + def test_decode_bell_in_filename(self): + m = gemato.manifest.ManifestEntryDATA.from_list(['DATA', + 'tes\\x07t', 32]) + self.assertEqual(m.path, 'tes\at') + + def test_decode_del_in_filename(self): + m = gemato.manifest.ManifestEntryDATA.from_list(['DATA', + 'tes\\x7Ft', 32]) + self.assertEqual(m.path, 'tes\x7Ft') + + def test_decode_del_in_filename_lc(self): + m = gemato.manifest.ManifestEntryDATA.from_list(['DATA', + 'tes\\x7ft', 32]) + self.assertEqual(m.path, 'tes\x7Ft') + + def test_decode_pad_in_filename(self): + m = gemato.manifest.ManifestEntryDATA.from_list(['DATA', + 'tes\\u0080t', 32]) + self.assertEqual(m.path, u'tes\u0080t') + def test_decode_backslash_in_filename(self): m = gemato.manifest.ManifestEntryDATA.from_list(['DATA', 'tes\\x5Ct', 32]) -- cgit v1.2.3