Magic Folder: Unicode-related test failures #2807

Closed
opened 2016-08-16 16:34:03 +00:00 by daira · 5 comments
daira commented 2016-08-16 16:34:03 +00:00
Owner

(https://tahoe-lafs.org/buildbot-tahoe-lafs/builders/Markus%20slackware64%20stable/builds/225/steps/tox/logs/stdio)

[ERROR]
Traceback (most recent call last):
  File "/src/buildslave/tahoe-lafs/Markus_slackware64_stable/build/src/allmydata/test/test_magic_folder.py", line 1273, in setUp
    d = super(MockTest, self).setUp()
  File "/src/buildslave/tahoe-lafs/Markus_slackware64_stable/build/src/allmydata/test/test_magic_folder.py", line 966, in setUp
    d = self.create_invite_join_magic_folder(u"Alice\u0101", self.local_dir)
  File "/src/buildslave/tahoe-lafs/Markus_slackware64_stable/build/src/allmydata/test/cli/test_magic_folder.py", line 99, in create_invite_join_magic_folder
    nickname_arg = unicode_to_argv(nickname)
  File "/src/buildslave/tahoe-lafs/Markus_slackware64_stable/build/src/allmydata/util/encodingutil.py", line 123, in unicode_to_argv
    return s.encode(io_encoding)
exceptions.UnicodeEncodeError: 'ascii' codec can't encode character u'\u0101' in position 5: ordinal not in range(128)

allmydata.test.test_magic_folder.MockTest.test_db_basic
allmydata.test.test_magic_folder.MockTest.test_db_persistence
allmydata.test.test_magic_folder.MockTest.test_delete
allmydata.test.test_magic_folder.MockTest.test_delete_and_restore
allmydata.test.test_magic_folder.MockTest.test_errors
allmydata.test.test_magic_folder.MockTest.test_magic_folder
allmydata.test.test_magic_folder.MockTest.test_move_tree
allmydata.test.test_magic_folder.MockTest.test_periodic_full_scan
allmydata.test.test_magic_folder.MockTest.test_persistence
allmydata.test.test_magic_folder.MockTest.test_scan_once_on_startup
allmydata.test.test_magic_folder.MockTest.test_statistics
allmydata.test.test_magic_folder.MockTest.test_write_downloaded_file
===============================================================================
[...]

[ERROR]
Traceback (most recent call last):
  File "/src/buildslave/tahoe-lafs/Markus_slackware64_stable/build/src/allmydata/test/test_magic_folder.py", line 249, in <lambda>
    d.addCallback(lambda ign: self.do_invite(0, u"Alice\u00F8"))
  File "/src/buildslave/tahoe-lafs/Markus_slackware64_stable/build/src/allmydata/test/cli/test_magic_folder.py", line 35, in do_invite
    nickname_arg = unicode_to_argv(nickname)
  File "/src/buildslave/tahoe-lafs/Markus_slackware64_stable/build/src/allmydata/util/encodingutil.py", line 123, in unicode_to_argv
    return s.encode(io_encoding)
exceptions.UnicodeEncodeError: 'ascii' codec can't encode character u'\xf8' in position 5: ordinal not in range(128)

allmydata.test.test_magic_folder.MockTestAliceBob.test_alice_bob
allmydata.test.test_magic_folder.MockTestAliceBob.test_alice_create_bob_update
allmydata.test.test_magic_folder.MockTestAliceBob.test_alice_delete_and_restore
allmydata.test.test_magic_folder.MockTestAliceBob.test_alice_delete_bob_restore
allmydata.test.test_magic_folder.MockTestAliceBob.test_alice_sees_bobs_delete_with_error
allmydata.test.test_magic_folder.MockTestAliceBob.test_download_retry
allmydata.test.test_magic_folder.RealTestAliceBob.test_alice_bob
allmydata.test.test_magic_folder.RealTestAliceBob.test_alice_create_bob_update
allmydata.test.test_magic_folder.RealTestAliceBob.test_alice_delete_and_restore
allmydata.test.test_magic_folder.RealTestAliceBob.test_alice_delete_bob_restore
allmydata.test.test_magic_folder.RealTestAliceBob.test_alice_sees_bobs_delete_with_error
allmydata.test.test_magic_folder.RealTestAliceBob.test_download_retry
===============================================================================

[ERROR]
Traceback (most recent call last):
  File "/src/buildslave/tahoe-lafs/Markus_slackware64_stable/build/src/allmydata/test/test_magic_folder.py", line 1430, in setUp
    d = super(RealTest, self).setUp()
  File "/src/buildslave/tahoe-lafs/Markus_slackware64_stable/build/src/allmydata/test/test_magic_folder.py", line 966, in setUp
    d = self.create_invite_join_magic_folder(u"Alice\u0101", self.local_dir)
  File "/src/buildslave/tahoe-lafs/Markus_slackware64_stable/build/src/allmydata/test/cli/test_magic_folder.py", line 99, in create_invite_join_magic_folder
    nickname_arg = unicode_to_argv(nickname)
  File "/src/buildslave/tahoe-lafs/Markus_slackware64_stable/build/src/allmydata/util/encodingutil.py", line 123, in unicode_to_argv
    return s.encode(io_encoding)
exceptions.UnicodeEncodeError: 'ascii' codec can't encode character u'\u0101' in position 5: ordinal not in range(128)

allmydata.test.test_magic_folder.RealTest.test_db_basic
allmydata.test.test_magic_folder.RealTest.test_db_persistence
allmydata.test.test_magic_folder.RealTest.test_delete
allmydata.test.test_magic_folder.RealTest.test_delete_and_restore
allmydata.test.test_magic_folder.RealTest.test_magic_folder
allmydata.test.test_magic_folder.RealTest.test_move_tree
allmydata.test.test_magic_folder.RealTest.test_persistence
allmydata.test.test_magic_folder.RealTest.test_scan_once_on_startup
===============================================================================
(https://tahoe-lafs.org/buildbot-tahoe-lafs/builders/Markus%20slackware64%20stable/builds/225/steps/tox/logs/stdio) ``` [ERROR] Traceback (most recent call last): File "/src/buildslave/tahoe-lafs/Markus_slackware64_stable/build/src/allmydata/test/test_magic_folder.py", line 1273, in setUp d = super(MockTest, self).setUp() File "/src/buildslave/tahoe-lafs/Markus_slackware64_stable/build/src/allmydata/test/test_magic_folder.py", line 966, in setUp d = self.create_invite_join_magic_folder(u"Alice\u0101", self.local_dir) File "/src/buildslave/tahoe-lafs/Markus_slackware64_stable/build/src/allmydata/test/cli/test_magic_folder.py", line 99, in create_invite_join_magic_folder nickname_arg = unicode_to_argv(nickname) File "/src/buildslave/tahoe-lafs/Markus_slackware64_stable/build/src/allmydata/util/encodingutil.py", line 123, in unicode_to_argv return s.encode(io_encoding) exceptions.UnicodeEncodeError: 'ascii' codec can't encode character u'\u0101' in position 5: ordinal not in range(128) allmydata.test.test_magic_folder.MockTest.test_db_basic allmydata.test.test_magic_folder.MockTest.test_db_persistence allmydata.test.test_magic_folder.MockTest.test_delete allmydata.test.test_magic_folder.MockTest.test_delete_and_restore allmydata.test.test_magic_folder.MockTest.test_errors allmydata.test.test_magic_folder.MockTest.test_magic_folder allmydata.test.test_magic_folder.MockTest.test_move_tree allmydata.test.test_magic_folder.MockTest.test_periodic_full_scan allmydata.test.test_magic_folder.MockTest.test_persistence allmydata.test.test_magic_folder.MockTest.test_scan_once_on_startup allmydata.test.test_magic_folder.MockTest.test_statistics allmydata.test.test_magic_folder.MockTest.test_write_downloaded_file =============================================================================== [...] [ERROR] Traceback (most recent call last): File "/src/buildslave/tahoe-lafs/Markus_slackware64_stable/build/src/allmydata/test/test_magic_folder.py", line 249, in <lambda> d.addCallback(lambda ign: self.do_invite(0, u"Alice\u00F8")) File "/src/buildslave/tahoe-lafs/Markus_slackware64_stable/build/src/allmydata/test/cli/test_magic_folder.py", line 35, in do_invite nickname_arg = unicode_to_argv(nickname) File "/src/buildslave/tahoe-lafs/Markus_slackware64_stable/build/src/allmydata/util/encodingutil.py", line 123, in unicode_to_argv return s.encode(io_encoding) exceptions.UnicodeEncodeError: 'ascii' codec can't encode character u'\xf8' in position 5: ordinal not in range(128) allmydata.test.test_magic_folder.MockTestAliceBob.test_alice_bob allmydata.test.test_magic_folder.MockTestAliceBob.test_alice_create_bob_update allmydata.test.test_magic_folder.MockTestAliceBob.test_alice_delete_and_restore allmydata.test.test_magic_folder.MockTestAliceBob.test_alice_delete_bob_restore allmydata.test.test_magic_folder.MockTestAliceBob.test_alice_sees_bobs_delete_with_error allmydata.test.test_magic_folder.MockTestAliceBob.test_download_retry allmydata.test.test_magic_folder.RealTestAliceBob.test_alice_bob allmydata.test.test_magic_folder.RealTestAliceBob.test_alice_create_bob_update allmydata.test.test_magic_folder.RealTestAliceBob.test_alice_delete_and_restore allmydata.test.test_magic_folder.RealTestAliceBob.test_alice_delete_bob_restore allmydata.test.test_magic_folder.RealTestAliceBob.test_alice_sees_bobs_delete_with_error allmydata.test.test_magic_folder.RealTestAliceBob.test_download_retry =============================================================================== [ERROR] Traceback (most recent call last): File "/src/buildslave/tahoe-lafs/Markus_slackware64_stable/build/src/allmydata/test/test_magic_folder.py", line 1430, in setUp d = super(RealTest, self).setUp() File "/src/buildslave/tahoe-lafs/Markus_slackware64_stable/build/src/allmydata/test/test_magic_folder.py", line 966, in setUp d = self.create_invite_join_magic_folder(u"Alice\u0101", self.local_dir) File "/src/buildslave/tahoe-lafs/Markus_slackware64_stable/build/src/allmydata/test/cli/test_magic_folder.py", line 99, in create_invite_join_magic_folder nickname_arg = unicode_to_argv(nickname) File "/src/buildslave/tahoe-lafs/Markus_slackware64_stable/build/src/allmydata/util/encodingutil.py", line 123, in unicode_to_argv return s.encode(io_encoding) exceptions.UnicodeEncodeError: 'ascii' codec can't encode character u'\u0101' in position 5: ordinal not in range(128) allmydata.test.test_magic_folder.RealTest.test_db_basic allmydata.test.test_magic_folder.RealTest.test_db_persistence allmydata.test.test_magic_folder.RealTest.test_delete allmydata.test.test_magic_folder.RealTest.test_delete_and_restore allmydata.test.test_magic_folder.RealTest.test_magic_folder allmydata.test.test_magic_folder.RealTest.test_move_tree allmydata.test.test_magic_folder.RealTest.test_persistence allmydata.test.test_magic_folder.RealTest.test_scan_once_on_startup =============================================================================== ```
tahoe-lafs added the
code-frontend-magic-folder
normal
defect
1.11.0
labels 2016-08-16 16:34:03 +00:00
tahoe-lafs added this to the 1.12.0 milestone 2016-08-16 16:34:03 +00:00
daira commented 2016-09-06 17:08:34 +00:00
Author
Owner

The relevant line in cli/test_magic_folder.py is:

    nickname_arg = unicode_to_argv(nickname)

It (and the similar line after it) just needs a fallback if the character isn't representable in the argv encoding.

The relevant line in cli/test_magic_folder.py is: ``` nickname_arg = unicode_to_argv(nickname) ``` It (and the similar line after it) just needs a fallback if the character isn't representable in the argv encoding.

I'll try making that change and see if the buildbot is happy.. if not, I'll reassign it back to daira for further investigation.

I'll try making that change and see if the buildbot is happy.. if not, I'll reassign it back to daira for further investigation.
daira commented 2016-09-27 15:13:00 +00:00
Author
Owner
(https://github.com/tahoe-lafs/tahoe-lafs/pull/356)
Daira Hopwood <daira@jacaranda.org> commented 2016-09-27 16:30:16 +00:00
Author
Owner

In c9d73a9/trunk:

Fix Unicode-related Magic Folder test failures. fixes #2807

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
In [c9d73a9/trunk](/tahoe-lafs/trac-2024-07-25/commit/c9d73a936aac2ab6eb97f49e06e68774e5300ddc): ``` Fix Unicode-related Magic Folder test failures. fixes #2807 Signed-off-by: Daira Hopwood <daira@jacaranda.org> ```
tahoe-lafs added the
fixed
label 2016-09-27 16:30:16 +00:00
Daira Hopwood <daira@jacaranda.org> closed this issue 2016-09-27 16:30:16 +00:00
Brian Warner <warner@lothar.com> commented 2016-09-27 17:32:37 +00:00
Author
Owner

In e8c246f/trunk:

Merge daira/2807.magic-folder-unicode-test-fail.1

refs ticket:2807

This allows tests to pass under an odd environment: our OS-X buildslave.
That process is started as a LaunchDaemon that doesn't provide any
Environment dictionary in the .plist file, so it runs with an empty
environment. On OS-X, this causes filesystem.encoding to default to
"utf-8", but locale.getpreferredencoding() returns "US-ASCII". The tests
previously assumed that any platform which used unicode for the
filesystem pathnames would also use it for sys.argv .

To simulate this without involving launchd, use "unset LANG", and
double-check that locale.getpreferredencoding() has changed.

This fix tolerates such platforms.
In [e8c246f/trunk](/tahoe-lafs/trac-2024-07-25/commit/e8c246f3465a97642d04fe74ec62dc706c99ec97): ``` Merge daira/2807.magic-folder-unicode-test-fail.1 refs ticket:2807 This allows tests to pass under an odd environment: our OS-X buildslave. That process is started as a LaunchDaemon that doesn't provide any Environment dictionary in the .plist file, so it runs with an empty environment. On OS-X, this causes filesystem.encoding to default to "utf-8", but locale.getpreferredencoding() returns "US-ASCII". The tests previously assumed that any platform which used unicode for the filesystem pathnames would also use it for sys.argv . To simulate this without involving launchd, use "unset LANG", and double-check that locale.getpreferredencoding() has changed. This fix tolerates such platforms. ```
Sign in to join this conversation.
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Reference: tahoe-lafs/trac-2024-07-25#2807
No description provided.