1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
#
# 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.
#
import argparse
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
class MockParent:
def __init__(self):
self.border_off_x = 1
self.pane_width = 20
self.encoding = 'utf8'
class TestUIConsoleField:
@pytest.fixture(autouse=True)
def set_up(self):
self.parent = MockParent()
def test_text_input(self):
def move_func(self, r, c):
self._cursor_row = r
self._cursor_col = c
t = TextInput(
self.parent,
'name',
'message',
move_func,
20,
'/text/field/file/path',
complete=False,
)
assert t
assert t.handle_read(33)
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])
assert args.move_completed_path == completed_path
args = parser.parse_args(['torrent', '--move-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('') == ''
|