From 16ef9a7aebac8caef2d4589d289def2c56fb9837 Mon Sep 17 00:00:00 2001 From: philipbjorge Date: Tue, 1 Jul 2014 19:14:01 -0700 Subject: [PATCH] Added unit test for Library unicode filenames #833 --- test/rsrc/unicode’d.mp3 | Bin 0 -> 12820 bytes test/test_library.py | 7 +++++++ 2 files changed, 7 insertions(+) create mode 100644 test/rsrc/unicode’d.mp3 diff --git a/test/rsrc/unicode’d.mp3 b/test/rsrc/unicode’d.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..ef732eba6268c44cbeee5f40246e156b259ad04a GIT binary patch literal 12820 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 literal 0 HcmV?d00001 diff --git a/test/test_library.py b/test/test_library.py index 9c40e8823..c5faa7f71 100644 --- a/test/test_library.py +++ b/test/test_library.py @@ -1,3 +1,4 @@ +# encoding: utf-8 # This file is part of beets. # Copyright 2013, Adrian Sampson. # @@ -1012,6 +1013,12 @@ class TemplateTest(_common.LibTestCase): self.album.store() self.assertEqual(self.i.evaluate_template('$foo'), 'baz') +class UnicodeReadWriteTest(_common.LibTestCase): + def test_unicode_path(self): + self.i.path = os.path.join(_common.RSRC, 'unicode’d.mp3') + # if there are any problems with unicode paths, we will raise here and fail + self.i.read() + self.i.write() class WriteTest(_common.LibTestCase): def test_write_nonexistant(self):