diff options
author | Lucas Hoffmann <l-m-h@web.de> | 2017-02-03 00:34:00 +0100 |
---|---|---|
committer | Lucas Hoffmann <l-m-h@web.de> | 2017-07-17 23:44:29 +0200 |
commit | 003cbfd45264f47121def5b97ef81d3df0e3f884 (patch) | |
tree | d053a4e4d351aa53433ac0e8460e7ed87f8a7d41 /tests/settings | |
parent | 9406ce0379c7aec54a6ac9ba9ae7dc4c785ff082 (diff) |
Test alot.settings.utils.resolve_att
Diffstat (limited to 'tests/settings')
-rw-r--r-- | tests/settings/utils_test.py | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/tests/settings/utils_test.py b/tests/settings/utils_test.py new file mode 100644 index 00000000..d88ed55f --- /dev/null +++ b/tests/settings/utils_test.py @@ -0,0 +1,76 @@ +# Copyright (C) 2017 Lucas Hoffmann +# This file is released under the GNU GPL, version 3 or a later revision. +# For further details see the COPYING file + +"""Tests for the alot.setting.utils module.""" + +from __future__ import absolute_import + +import unittest + +import mock + +from alot.settings import utils + + +class TestResolveAtt(unittest.TestCase): + + __patchers = [] + fallback = mock.Mock() + fallback.foreground = 'some fallback foreground value' + fallback.background = 'some fallback background value' + + @classmethod + def setUpClass(cls): + cls.__patchers.append(mock.patch( + 'alot.settings.utils.AttrSpec', + mock.Mock(side_effect=lambda *args: args))) + for p in cls.__patchers: + p.start() + + @classmethod + def tearDownClass(cls): + for p in cls.__patchers: + p.stop() + + @staticmethod + def _mock(foreground, background): + """Create a mock object that is needed very often.""" + m = mock.Mock() + m.foreground = foreground + m.background = background + return m + + def test_passing_none_returns_fallback(self): + actual = utils.resolve_att(None, self.fallback) + self.assertEqual(actual, self.fallback) + + def test_empty_string_in_background_picks_up_background_from_fallback(self): + attr = self._mock('valid foreground', '') + expected = (attr.foreground, self.fallback.background) + actual = utils.resolve_att(attr, self.fallback) + self.assertTupleEqual(actual, expected) + + def test_default_in_background_picks_up_background_from_fallback(self): + attr = self._mock('valid foreground', 'default') + expected = attr.foreground, self.fallback.background + actual = utils.resolve_att(attr, self.fallback) + self.assertTupleEqual(actual, expected) + + def test_empty_string_in_foreground_picks_up_foreground_from_fallback(self): + attr = self._mock('', 'valid background') + expected = self.fallback.foreground, attr.background + actual = utils.resolve_att(attr, self.fallback) + self.assertTupleEqual(actual, expected) + + def test_default_in_foreground_picks_up_foreground_from_fallback(self): + attr = self._mock('default', 'valid background') + expected = self.fallback.foreground, attr.background + actual = utils.resolve_att(attr, self.fallback) + self.assertTupleEqual(actual, expected) + + def test_other_values_are_used(self): + attr = self._mock('valid foreground', 'valid background') + expected = attr.foreground, attr.background + actual = utils.resolve_att(attr, self.fallback) + self.assertTupleEqual(actual, expected) |