summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCalum Lind <calumlind+deluge@gmail.com>2019-05-08 20:25:49 +0100
committerCalum Lind <calumlind+deluge@gmail.com>2019-05-08 21:02:09 +0100
commit1a134cab1bb0e1ae75b04839cfc24ffde8f3b32f (patch)
tree3c71b0f9197f318361a41badf6e003877b78d9ea
parent7d677924930a6273958b2f2fdc087e5329582898 (diff)
downloaddeluge-1a134cab1bb0e1ae75b04839cfc24ffde8f3b32f.tar.gz
deluge-1a134cab1bb0e1ae75b04839cfc24ffde8f3b32f.tar.bz2
deluge-1a134cab1bb0e1ae75b04839cfc24ffde8f3b32f.zip
[#3248|Console] Fix not accepting input under Python3
On Python 3 the chr function returns unicode so trying to decode will result in an error. Applied a workaround to assign without decoding.
-rw-r--r--deluge/tests/test_ui_console_fields.py4
-rw-r--r--deluge/ui/console/modes/cmdline.py3
-rw-r--r--deluge/ui/console/modes/torrentlist/search_mode.py3
-rw-r--r--deluge/ui/console/widgets/fields.py3
4 files changed, 9 insertions, 4 deletions
diff --git a/deluge/tests/test_ui_console_fields.py b/deluge/tests/test_ui_console_fields.py
index 2d4f4d300..b36856e97 100644
--- a/deluge/tests/test_ui_console_fields.py
+++ b/deluge/tests/test_ui_console_fields.py
@@ -16,6 +16,7 @@ class Parent(object):
def __init__(self):
self.border_off_x = 1
self.pane_width = 20
+ self.encoding = 'utf8'
class UICommonTestCase(unittest.TestCase):
@@ -39,4 +40,5 @@ class UICommonTestCase(unittest.TestCase):
'/text/field/file/path',
complete=False,
)
- self.assertTrue(t) # Shut flake8 up (unused variable)
+ self.assertTrue(t)
+ self.assertTrue(t.handle_read(33))
diff --git a/deluge/ui/console/modes/cmdline.py b/deluge/ui/console/modes/cmdline.py
index 59342bec6..2735168db 100644
--- a/deluge/ui/console/modes/cmdline.py
+++ b/deluge/ui/console/modes/cmdline.py
@@ -17,6 +17,7 @@ from io import open
import deluge.component as component
import deluge.configmanager
+from deluge.common import PY2
from deluge.decorators import overrides
from deluge.ui.console.cmdline.command import Commander
from deluge.ui.console.modes.basemode import BaseMode, move_cursor
@@ -334,7 +335,7 @@ class CmdLine(BaseMode, Commander):
if c > 31 and c < 256:
# Emulate getwch
stroke = chr(c)
- uchar = ''
+ uchar = '' if PY2 else stroke
while not uchar:
try:
uchar = stroke.decode(self.encoding)
diff --git a/deluge/ui/console/modes/torrentlist/search_mode.py b/deluge/ui/console/modes/torrentlist/search_mode.py
index 6720c925a..57a8e5f64 100644
--- a/deluge/ui/console/modes/torrentlist/search_mode.py
+++ b/deluge/ui/console/modes/torrentlist/search_mode.py
@@ -11,6 +11,7 @@ from __future__ import unicode_literals
import logging
+from deluge.common import PY2
from deluge.decorators import overrides
from deluge.ui.console.modes.basemode import InputKeyHandler, move_cursor
from deluge.ui.console.modes.torrentlist.torrentactions import torrent_actions_popup
@@ -175,7 +176,7 @@ class SearchMode(InputKeyHandler):
elif c > 31 and c < 256:
old_search_string = self.search_string
stroke = chr(c)
- uchar = ''
+ uchar = '' if PY2 else stroke
while not uchar:
try:
uchar = stroke.decode(self.torrentlist.encoding)
diff --git a/deluge/ui/console/widgets/fields.py b/deluge/ui/console/widgets/fields.py
index ae6da34e9..1966c6685 100644
--- a/deluge/ui/console/widgets/fields.py
+++ b/deluge/ui/console/widgets/fields.py
@@ -14,6 +14,7 @@ from __future__ import unicode_literals
import logging
import os
+from deluge.common import PY2
from deluge.decorators import overrides
from deluge.ui.console.modes.basemode import InputKeyHandler
from deluge.ui.console.utils import colors
@@ -950,7 +951,7 @@ class TextInput(InputField):
elif c > 31 and c < 256:
# Emulate getwch
stroke = chr(c)
- uchar = ''
+ uchar = '' if PY2 else stroke
while not uchar:
try:
uchar = stroke.decode(self.parent.encoding)