summaryrefslogtreecommitdiff
blob: 9d963744004fb612d8142e458d5a28f73b0b7c07 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# test_stackDicts.py -- Portage Unit Testing Functionality
# Copyright 2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

from unittest 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 ], 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] )