summaryrefslogtreecommitdiffstats
path: root/deluge/tests/test_ui_common.py
diff options
context:
space:
mode:
Diffstat (limited to 'deluge/tests/test_ui_common.py')
-rw-r--r--deluge/tests/test_ui_common.py122
1 files changed, 102 insertions, 20 deletions
diff --git a/deluge/tests/test_ui_common.py b/deluge/tests/test_ui_common.py
index dffd884..ee97259 100644
--- a/deluge/tests/test_ui_common.py
+++ b/deluge/tests/test_ui_common.py
@@ -1,4 +1,3 @@
-# -*- coding: utf-8 -*-
#
# Copyright (C) 2016 bendikro <bro.devel+deluge@gmail.com>
#
@@ -6,32 +5,115 @@
# 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 six import assertCountEqual
-from twisted.trial import unittest
-
-from deluge.common import windows_check
from deluge.ui.common import TorrentInfo
from . import common
-class UICommonTestCase(unittest.TestCase):
- def setUp(self): # NOQA: N803
- pass
+class TestUICommon:
+ def test_hash_optional_single_file(self):
+ """Ensure single file with `ed2k` and `sha1` keys are not in filetree output."""
+ filename = common.get_test_data_file('test.torrent')
+ files_tree = {'azcvsupdater_2.6.2.jar': (0, 307949, True)}
+ ti = TorrentInfo(filename, filetree=1)
+ assert ti.files_tree == files_tree
+
+ files_tree2 = {
+ 'contents': {
+ 'azcvsupdater_2.6.2.jar': {
+ 'type': 'file',
+ 'index': 0,
+ 'length': 307949,
+ 'download': True,
+ }
+ }
+ }
+ ti = TorrentInfo(filename, filetree=2)
+ assert ti.files_tree == files_tree2
+
+ def test_hash_optional_multi_file(self):
+ """Ensure multi-file with `filehash` and `ed2k` are keys not in filetree output."""
+ filename = common.get_test_data_file('filehash_field.torrent')
+ files_tree = {
+ 'torrent_filehash': {
+ 'tull.txt': (0, 54, True),
+ '還在一個人無聊嗎~還不趕緊上來聊天美.txt': (1, 54, True),
+ }
+ }
+ ti = TorrentInfo(filename, filetree=1)
+ assert ti.files_tree == files_tree
- def tearDown(self): # NOQA: N803
- pass
+ filestree2 = {
+ 'contents': {
+ 'torrent_filehash': {
+ 'type': 'dir',
+ 'contents': {
+ 'tull.txt': {
+ 'type': 'file',
+ 'path': 'torrent_filehash/tull.txt',
+ 'length': 54,
+ 'index': 0,
+ 'download': True,
+ },
+ '還在一個人無聊嗎~還不趕緊上來聊天美.txt': {
+ 'type': 'file',
+ 'path': 'torrent_filehash/還在一個人無聊嗎~還不趕緊上來聊天美.txt',
+ 'length': 54,
+ 'index': 1,
+ 'download': True,
+ },
+ },
+ 'length': 108,
+ 'download': True,
+ }
+ },
+ 'type': 'dir',
+ }
+ ti = TorrentInfo(filename, filetree=2)
+ assert ti.files_tree == filestree2
+
+ def test_hash_optional_md5sum(self):
+ # Ensure `md5sum` key is not included in filetree output
+ filename = common.get_test_data_file('md5sum.torrent')
+ files_tree = {'test': {'lol': (0, 4, True), 'rofl': (1, 5, True)}}
+ ti = TorrentInfo(filename, filetree=1)
+ assert ti.files_tree == files_tree
+ ti = TorrentInfo(filename, filetree=2)
+ files_tree2 = {
+ 'contents': {
+ 'test': {
+ 'type': 'dir',
+ 'contents': {
+ 'lol': {
+ 'type': 'file',
+ 'path': 'test/lol',
+ 'index': 0,
+ 'length': 4,
+ 'download': True,
+ },
+ 'rofl': {
+ 'type': 'file',
+ 'path': 'test/rofl',
+ 'index': 1,
+ 'length': 5,
+ 'download': True,
+ },
+ },
+ 'length': 9,
+ 'download': True,
+ }
+ },
+ 'type': 'dir',
+ }
+ assert ti.files_tree == files_tree2
def test_utf8_encoded_paths(self):
filename = common.get_test_data_file('test.torrent')
ti = TorrentInfo(filename)
- self.assertTrue('azcvsupdater_2.6.2.jar' in ti.files_tree)
+ assert 'azcvsupdater_2.6.2.jar' in ti.files_tree
def test_utf8_encoded_paths2(self):
- if windows_check():
- raise unittest.SkipTest('on windows KeyError: unicode_filenames')
filename = common.get_test_data_file('unicode_filenames.torrent')
filepath1 = '\u30c6\u30af\u30b9\u30fb\u30c6\u30af\u30b5\u30f3.mkv'
filepath2 = (
@@ -44,11 +126,11 @@ class UICommonTestCase(unittest.TestCase):
ti = TorrentInfo(filename)
files_tree = ti.files_tree['unicode_filenames']
- self.assertIn(filepath1, files_tree)
- self.assertIn(filepath2, files_tree)
- self.assertIn(filepath3, files_tree)
- self.assertIn(filepath4, files_tree)
- self.assertIn(filepath5, files_tree)
+ assert filepath1 in files_tree
+ assert filepath2 in files_tree
+ assert filepath3 in files_tree
+ assert filepath4 in files_tree
+ assert filepath5 in files_tree
result_files = [
{
@@ -74,4 +156,4 @@ class UICommonTestCase(unittest.TestCase):
{'download': True, 'path': 'unicode_filenames/' + filepath1, 'size': 1771},
]
- assertCountEqual(self, ti.files, result_files)
+ assert len(ti.files) == len(result_files)