74
74
self.assertEqual(goti, di,
75
75
"debugitems, iteration %i, got %r expected %r" % (i, goti, di))
77
class EqualityTest(unittest.TestCase):
78
def test_string_expansion(self):
79
s1 = pymake.data.StringExpansion('foo bar', None)
80
s2 = pymake.data.StringExpansion('foo bar', None)
82
self.assertEqual(s1, s2)
84
def test_expansion_simple(self):
85
s1 = pymake.data.Expansion(None)
86
s2 = pymake.data.Expansion(None)
88
self.assertEqual(s1, s2)
92
self.assertEqual(s1, s2)
94
def test_expansion_string_finish(self):
95
"""Adjacent strings should normalize to same value."""
96
s1 = pymake.data.Expansion(None)
97
s2 = pymake.data.Expansion(None)
104
s2.appendstr(' bar baz')
106
self.assertEqual(s1, s2)
108
def test_function(self):
109
s1 = pymake.data.Expansion(None)
110
s2 = pymake.data.Expansion(None)
112
n1 = pymake.data.StringExpansion('FOO', None)
113
n2 = pymake.data.StringExpansion('FOO', None)
115
v1 = pymake.functions.VariableRef(None, n1)
116
v2 = pymake.functions.VariableRef(None, n2)
121
self.assertEqual(s1, s2)
124
class StringExpansionTest(unittest.TestCase):
125
def test_base_expansion_interface(self):
126
s1 = pymake.data.StringExpansion('FOO', None)
128
self.assertTrue(s1.is_static_string)
130
funcs = list(s1.functions())
131
self.assertEqual(len(funcs), 0)
133
funcs = list(s1.functions(True))
134
self.assertEqual(len(funcs), 0)
136
refs = list(s1.variable_references())
137
self.assertEqual(len(refs), 0)
140
class ExpansionTest(unittest.TestCase):
141
def test_is_static_string(self):
142
e1 = pymake.data.Expansion()
145
self.assertTrue(e1.is_static_string)
148
self.assertTrue(e1.is_static_string)
150
vname = pymake.data.StringExpansion('FOO', None)
151
func = pymake.functions.VariableRef(None, vname)
155
self.assertFalse(e1.is_static_string)
157
def test_get_functions(self):
158
e1 = pymake.data.Expansion()
161
vname1 = pymake.data.StringExpansion('FOO', None)
162
vname2 = pymake.data.StringExpansion('BAR', None)
164
func1 = pymake.functions.VariableRef(None, vname1)
165
func2 = pymake.functions.VariableRef(None, vname2)
170
funcs = list(e1.functions())
171
self.assertEqual(len(funcs), 2)
173
func3 = pymake.functions.SortFunction(None)
178
funcs = list(e1.functions())
179
self.assertEqual(len(funcs), 3)
181
refs = list(e1.variable_references())
182
self.assertEqual(len(refs), 2)
184
def test_get_functions_descend(self):
185
e1 = pymake.data.Expansion()
186
vname1 = pymake.data.StringExpansion('FOO', None)
187
func1 = pymake.functions.VariableRef(None, vname1)
188
e2 = pymake.data.Expansion()
191
func2 = pymake.functions.SortFunction(None)
196
funcs = list(e1.functions())
197
self.assertEqual(len(funcs), 1)
199
funcs = list(e1.functions(True))
200
self.assertEqual(len(funcs), 2)
202
self.assertTrue(isinstance(funcs[0], pymake.functions.SortFunction))
204
def test_is_filesystem_dependent(self):
205
e = pymake.data.Expansion()
206
vname1 = pymake.data.StringExpansion('FOO', None)
207
func1 = pymake.functions.VariableRef(None, vname1)
210
self.assertFalse(e.is_filesystem_dependent)
212
func2 = pymake.functions.WildcardFunction(None)
216
self.assertTrue(e.is_filesystem_dependent)
218
def test_is_filesystem_dependent_descend(self):
219
sort = pymake.functions.SortFunction(None)
220
wildcard = pymake.functions.WildcardFunction(None)
222
e = pymake.data.StringExpansion('foo/*', None)
225
e = pymake.data.Expansion(None)
226
e.appendfunc(wildcard)
230
e = pymake.data.Expansion(None)
233
self.assertTrue(e.is_filesystem_dependent)
77
236
if __name__ == '__main__':