Beispiel #1
0
    def test_get_files_with_length(self):
        name_bytes = b'\xe8\xaf\xad\xe8\xa8\x80\xe5\xa4\x84\xe7\x90\x86'
        name_unicode = name_bytes.decode()
        t = TorrentDef()
        t.metainfo = {
            b'info': {
                b'files': [{
                    b'path.utf-8': [name_bytes],
                    b'length': 123
                }, {
                    b'path.utf-8': [b'file.txt'],
                    b'length': 456
                }]
            }
        }
        self.assertEqual(t.get_files_with_length(), [(Path(name_unicode), 123),
                                                     (Path('file.txt'), 456)])

        t.metainfo = {
            b'info': {
                b'files': [{
                    b'path': [name_bytes],
                    b'length': 123
                }, {
                    b'path': [b'file.txt'],
                    b'length': 456
                }]
            }
        }
        self.assertEqual(t.get_files_with_length(), [(Path(name_unicode), 123),
                                                     (Path('file.txt'), 456)])

        t.metainfo = {
            b'info': {
                b'files': [{
                    b'path': [b'test\xff' + name_bytes],
                    b'length': 123
                }, {
                    b'path': [b'file.txt'],
                    b'length': 456
                }]
            }
        }
        self.assertEqual(t.get_files_with_length(),
                         [(Path('test?????????????'), 123),
                          (Path('file.txt'), 456)])

        t.metainfo = {
            b'info': {
                b'files': [{
                    b'path.utf-8': [b'test\xff' + name_bytes],
                    b'length': 123
                }, {
                    b'path': [b'file.txt'],
                    b'length': 456
                }]
            }
        }
        self.assertEqual(t.get_files_with_length(), [(Path('file.txt'), 456)])
Beispiel #2
0
 def test_files_no_metainfo(self):
     """
     Test whether a TorrentDef without metainfo has no files.
     """
     t = TorrentDef()
     self.assertEqual(0, len(t.get_files_with_length()))