mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2025-05-02 17:12:59 +00:00
test_backupdb.py: skip test_unicode if we can't represent the test filenames.
This commit is contained in:
parent
a2caf6f4b2
commit
6b2f99fa9a
@ -4,7 +4,8 @@ from StringIO import StringIO
|
|||||||
from twisted.trial import unittest
|
from twisted.trial import unittest
|
||||||
|
|
||||||
from allmydata.util import fileutil
|
from allmydata.util import fileutil
|
||||||
from allmydata.util.stringutils import listdir_unicode
|
from allmydata.util.stringutils import listdir_unicode, get_filesystem_encoding, unicode_platform
|
||||||
|
from allmydata.util.assertutil import precondition
|
||||||
from allmydata.scripts import backupdb
|
from allmydata.scripts import backupdb
|
||||||
|
|
||||||
class BackupDB(unittest.TestCase):
|
class BackupDB(unittest.TestCase):
|
||||||
@ -16,6 +17,16 @@ class BackupDB(unittest.TestCase):
|
|||||||
raise unittest.SkipTest("sqlite unavailable, skipping test")
|
raise unittest.SkipTest("sqlite unavailable, skipping test")
|
||||||
return bdb
|
return bdb
|
||||||
|
|
||||||
|
def skip_if_cannot_represent_filename(self, u):
|
||||||
|
precondition(isinstance(u, unicode))
|
||||||
|
|
||||||
|
enc = get_filesystem_encoding()
|
||||||
|
if not unicode_platform():
|
||||||
|
try:
|
||||||
|
u.encode(enc)
|
||||||
|
except UnicodeEncodeError:
|
||||||
|
raise unittest.SkipTest("A non-ASCII filename could not be encoded on this platform.")
|
||||||
|
|
||||||
def test_basic(self):
|
def test_basic(self):
|
||||||
self.basedir = basedir = os.path.join("backupdb", "create")
|
self.basedir = basedir = os.path.join("backupdb", "create")
|
||||||
fileutil.make_dirs(basedir)
|
fileutil.make_dirs(basedir)
|
||||||
@ -77,7 +88,7 @@ class BackupDB(unittest.TestCase):
|
|||||||
|
|
||||||
|
|
||||||
def writeto(self, filename, data):
|
def writeto(self, filename, data):
|
||||||
fn = os.path.join(self.basedir, filename)
|
fn = os.path.join(self.basedir, unicode(filename))
|
||||||
parentdir = os.path.dirname(fn)
|
parentdir = os.path.dirname(fn)
|
||||||
fileutil.make_dirs(parentdir)
|
fileutil.make_dirs(parentdir)
|
||||||
fileutil.write(fn, data)
|
fileutil.write(fn, data)
|
||||||
@ -228,6 +239,9 @@ class BackupDB(unittest.TestCase):
|
|||||||
self.failIf(r.was_created())
|
self.failIf(r.was_created())
|
||||||
|
|
||||||
def test_unicode(self):
|
def test_unicode(self):
|
||||||
|
self.skip_if_cannot_represent_filename(u"f\u00f6\u00f6.txt")
|
||||||
|
self.skip_if_cannot_represent_filename(u"b\u00e5r.txt")
|
||||||
|
|
||||||
self.basedir = basedir = os.path.join("backupdb", "unicode")
|
self.basedir = basedir = os.path.join("backupdb", "unicode")
|
||||||
fileutil.make_dirs(basedir)
|
fileutil.make_dirs(basedir)
|
||||||
dbfile = os.path.join(basedir, "dbfile")
|
dbfile = os.path.join(basedir, "dbfile")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user