| # test_stackDicts.py -- Portage Unit Testing Functionality |
| # Copyright 2006 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| |
| from portage.tests import TestCase |
| from portage.util import stack_dicts |
| |
| |
| class StackDictsTestCase(TestCase): |
| |
| def testStackDictsPass(self): |
| |
| tests = [ ( [ { "a":"b" }, { "b":"c" } ], { "a":"b", "b":"c" }, |
| False, [], False ), |
| ( [ { "a":"b" }, { "a":"c" } ], { "a":"b c" }, |
| True, [], False ), |
| ( [ { "a":"b" }, { "a":"c" } ], { "a":"b c" }, |
| False, ["a"], False ), |
| ( [ { "a":"b" }, None ], { "a":"b" }, |
| False, [], True ), |
| ( [ None ], {}, False, [], False ), |
| ( [ None, {}], {}, False, [], True ) ] |
| |
| |
| for test in tests: |
| result = stack_dicts( test[0], test[2], test[3], test[4] ) |
| self.assertEqual( result, test[1] ) |
| |
| def testStackDictsFail(self): |
| |
| tests = [ ( [ None, {} ], None, False, [], True ), |
| ( [ { "a":"b"}, {"a":"c" } ], { "a":"b c" }, |
| False, [], False ) ] |
| for test in tests: |
| result = stack_dicts( test[0], test[2], test[3], test[4] ) |
| self.assertNotEqual( result , test[1] ) |