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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
#!/usr/bin/python
# Copyright 2014 Google Inc.
#
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""
Test the VarsDict.
"""
import sys
import test_variables
import unittest
sys.path.append(test_variables.GYP_GEN_DIR)
import vars_dict_lib
from vars_dict_lib import OrderedSet
from vars_dict_lib import VarsDict
from vars_dict_lib import VAR_NAMES
class VarsDictTest(unittest.TestCase):
"""
Tests for the VarsDict class.
"""
# May not be needed.
def setUp(self):
self.__vars_dict = VarsDict()
def assert_consistency(self, v_dict):
self.assertIs(v_dict.LOCAL_CFLAGS, v_dict['LOCAL_CFLAGS'])
self.assertIs(v_dict.LOCAL_CPPFLAGS, v_dict['LOCAL_CPPFLAGS'])
self.assertIs(v_dict.LOCAL_SRC_FILES, v_dict['LOCAL_SRC_FILES'])
self.assertIs(v_dict.LOCAL_SHARED_LIBRARIES,
v_dict['LOCAL_SHARED_LIBRARIES'])
self.assertIs(v_dict.LOCAL_STATIC_LIBRARIES,
v_dict['LOCAL_STATIC_LIBRARIES'])
self.assertIs(v_dict.LOCAL_C_INCLUDES, v_dict['LOCAL_C_INCLUDES'])
self.assertIs(v_dict.LOCAL_EXPORT_C_INCLUDE_DIRS,
v_dict['LOCAL_EXPORT_C_INCLUDE_DIRS'])
self.assertIs(v_dict.KNOWN_TARGETS, v_dict['KNOWN_TARGETS'])
def test_creation(self):
v_dict = VarsDict()
# VarsDict has one entry for each label in VAR_NAMES
self.assertEqual(len(v_dict.keys()), len(VAR_NAMES))
for key in v_dict.keys():
self.assertIn(key, VAR_NAMES)
# Each entry is an empty OrderedSet
self.assertIsNotNone(v_dict[key])
self.assertIsInstance(v_dict[key], OrderedSet)
self.assertEqual(len(v_dict[key]), 0)
self.assert_consistency(v_dict)
def test_intersection(self):
v_dict_list = []
RANGE = 10
for i in range(RANGE):
v_dict = VarsDict()
# Add something common to each field, as well as a unique entry
for key in v_dict.keys():
v_dict[key].add(key.lower())
v_dict[key].add(str(i))
self.assert_consistency(v_dict)
v_dict_list.append(v_dict)
intersection = vars_dict_lib.intersect(v_dict_list)
self.assert_consistency(intersection)
for key in intersection.keys():
# Each field had one common item
self.assertEqual(len(intersection[key]), 1)
for item in intersection[key]:
for other_v_dict in v_dict_list:
self.assertNotIn(item, other_v_dict[key])
def main():
loader = unittest.TestLoader()
suite = loader.loadTestsFromTestCase(VarsDictTest)
unittest.TextTestRunner(verbosity=2).run(suite)
if __name__ == "__main__":
main()
|