494
497
self.assertEqual(logging.DEBUG, parser(bad_value))
495
498
self.assertEqual(logging.DEBUG, parser(invalid_value))
497
def test_home_dir_parser(self):
498
"""Test home_dir_parser"""
499
good_value = '~/hola'
502
parser = config.home_dir_parser
503
with environ('HOME', '/home/fake'):
504
self.assertEquals('/home/fake/hola', parser(good_value))
505
self.assertEquals('hola', parser(bad_value))
506
self.assertRaises(AttributeError, parser, invalid_value)
508
def test_xdg_cache_dir_parser(self):
509
"""Test xdg_cache_dir_parser"""
513
parser = config.xdg_cache_dir_parser
514
self.assertEquals(os.path.join(xdg_cache_home, 'hola'),
516
self.assertEquals('/hola', parser(bad_value))
517
self.assertRaises(AttributeError, parser, invalid_value)
519
def test_xdg_data_dir_parser(self):
520
"""Test xdg_data_dir_parser"""
524
parser = config.xdg_data_dir_parser
525
self.assertEquals(os.path.join(xdg_data_home, 'hola'),
527
self.assertEquals('/hola', parser(bad_value))
528
self.assertRaises(AttributeError, parser, invalid_value)
501
class XdgHomeParsersTests(BaseTwistedTestCase):
502
"""Tests for our custom xdg parsers."""
504
good_value = '~/hola/mundo'
506
xdg_dir = os.path.join('', 'home', 'fake')
508
@defer.inlineCallbacks
510
yield super(XdgHomeParsersTests, self).setUp()
511
self.parser = getattr(config, '%s_dir_parser' % self.name)
513
def test_good_value(self):
514
"""Test the parser using a good value."""
515
homedir = os.path.join('', 'home', 'fake')
516
with environ('HOME', homedir):
517
expected = os.path.join(self.xdg_dir, 'hola', 'mundo')
518
actual = self.parser(self.good_value)
519
self.assertEqual(expected, actual)
520
self.assertIsInstance(actual, str)
521
self.assertNotIsInstance(actual, unicode)
523
def test_bad_value(self):
524
"""Test the parser using a bad value."""
526
self.assertEqual(config.path_from_unix(bad_value),
527
self.parser(bad_value))
529
def test_invalid_value(self):
530
"""Test the parser using an invalid value."""
532
self.assertRaises(AttributeError, self.parser, invalid_value)
535
class XdgCacheParsersTests(XdgHomeParsersTests):
536
"""Tests for our custom xdg parsers."""
538
good_value = 'hola/mundo'
540
xdg_dir = xdg_cache_home
543
class XdgDataParsersTests(XdgCacheParsersTests):
544
"""Tests for our custom xdg parsers."""
546
good_value = 'hola/mundo'
548
xdg_dir = xdg_data_home
531
551
class SyncDaemonConfigParserTests(BaseTwistedTestCase):
532
552
"""Tests for SyncDaemonConfigParser"""
554
@defer.inlineCallbacks
535
BaseTwistedTestCase.setUp(self)
556
yield super(SyncDaemonConfigParserTests, self).setUp()
536
557
self.test_root = self.mktemp()
537
558
self.default_config = os.path.join(os.environ['ROOTDIR'], 'data',
538
559
'syncdaemon.conf')