summaryrefslogtreecommitdiffstats
path: root/deluge/tests/test_ui_console.py
diff options
context:
space:
mode:
Diffstat (limited to 'deluge/tests/test_ui_console.py')
-rw-r--r--deluge/tests/test_ui_console.py61
1 files changed, 37 insertions, 24 deletions
diff --git a/deluge/tests/test_ui_console.py b/deluge/tests/test_ui_console.py
index 8c67322..34398ee 100644
--- a/deluge/tests/test_ui_console.py
+++ b/deluge/tests/test_ui_console.py
@@ -1,35 +1,30 @@
-# -*- 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
-
import argparse
-from deluge.common import windows_check
+import pytest
+
from deluge.ui.console.cmdline.commands.add import Command
+from deluge.ui.console.cmdline.commands.config import json_eval
from deluge.ui.console.widgets.fields import TextInput
-from .basetest import BaseTestCase
-
-class MockParent(object):
+class MockParent:
def __init__(self):
self.border_off_x = 1
self.pane_width = 20
self.encoding = 'utf8'
-class UIConsoleFieldTestCase(BaseTestCase):
- def setUp(self): # NOQA: N803
+class TestUIConsoleField:
+ @pytest.fixture(autouse=True)
+ def set_up(self):
self.parent = MockParent()
- def tearDown(self): # NOQA: N803
- pass
-
def test_text_input(self):
def move_func(self, r, c):
self._cursor_row = r
@@ -44,24 +39,42 @@ class UIConsoleFieldTestCase(BaseTestCase):
'/text/field/file/path',
complete=False,
)
- self.assertTrue(t)
- if not windows_check():
- self.assertTrue(t.handle_read(33))
+ assert t
+ assert t.handle_read(33)
-class UIConsoleCommandsTestCase(BaseTestCase):
- def setUp(self):
- pass
-
- def tearDown(self):
- pass
-
+class TestUIConsoleCommands:
def test_add_move_completed(self):
completed_path = 'completed_path'
parser = argparse.ArgumentParser()
cmd = Command()
cmd.add_arguments(parser)
args = parser.parse_args(['torrent', '-m', completed_path])
- self.assertEqual(args.move_completed_path, completed_path)
+ assert args.move_completed_path == completed_path
args = parser.parse_args(['torrent', '--move-path', completed_path])
- self.assertEqual(args.move_completed_path, completed_path)
+ assert args.move_completed_path == completed_path
+
+ def test_config_json_eval(self):
+ assert json_eval('/downloads') == '/downloads'
+ assert json_eval('/dir/with space') == '/dir/with space'
+ assert json_eval('c:\\\\downloads') == 'c:\\\\downloads'
+ assert json_eval('c:/downloads') == 'c:/downloads'
+ # Ensure newlines are split and only first setting is used.
+ assert json_eval('setting\nwithneline') == 'setting'
+ # Allow both parentheses and square brackets.
+ assert json_eval('(8000, 8001)') == [8000, 8001]
+ assert json_eval('[8000, 8001]') == [8000, 8001]
+ assert json_eval('["abc", "def"]') == ['abc', 'def']
+ assert json_eval('{"foo": "bar"}') == {'foo': 'bar'}
+ assert json_eval('{"number": 1234}') == {'number': 1234}
+ # Hex string for peer_tos.
+ assert json_eval('0x00') == '0x00'
+ assert json_eval('1000') == 1000
+ assert json_eval('-6') == -6
+ assert json_eval('10.5') == 10.5
+ assert json_eval('True')
+ assert not json_eval('false')
+ assert json_eval('none') is None
+ # Empty values to clear config key.
+ assert json_eval('[]') == []
+ assert json_eval('') == ''