diff options
Diffstat (limited to 'deluge/tests/test_bencode.py')
-rw-r--r-- | deluge/tests/test_bencode.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/deluge/tests/test_bencode.py b/deluge/tests/test_bencode.py new file mode 100644 index 0000000..b49c21f --- /dev/null +++ b/deluge/tests/test_bencode.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- +# +# This file is part of Deluge and is licensed under GNU General Public License 3.0, or later, with +# the additional special exception to link portions of this program with the OpenSSL library. +# See LICENSE for more details. +# +from __future__ import unicode_literals + +from twisted.trial import unittest + +from deluge import bencode + +from . import common + + +class BencodeTestCase(unittest.TestCase): + def test_bencode_unicode_metainfo(self): + filename = common.get_test_data_file('test.torrent') + with open(filename, 'rb') as _file: + metainfo = bencode.bdecode(_file.read())[b'info'] + bencode.bencode({b'info': metainfo}) + + def test_bencode_unicode_value(self): + self.assertEqual(bencode.bencode(b'abc'), b'3:abc') + self.assertEqual(bencode.bencode('abc'), b'3:abc') + + def test_bdecode(self): + self.assertEqual(bencode.bdecode(b'3:dEf'), b'dEf') + with self.assertRaises(bencode.BTFailure): + bencode.bdecode('dEf') + with self.assertRaises(bencode.BTFailure): + bencode.bdecode(b'dEf') + with self.assertRaises(bencode.BTFailure): + bencode.bdecode({'dEf': 123}) |