diff options
Diffstat (limited to 'deluge/tests/test_ui_console.py')
-rw-r--r-- | deluge/tests/test_ui_console.py | 61 |
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('') == '' |