~ubuntu-branches/ubuntu/oneiric/lightning-extension/oneiric-security

« back to all changes in this revision

Viewing changes to mozilla/build/pymake/tests/datatests.py

  • Committer: Package Import Robot
  • Author(s): Chris Coulson
  • Date: 2012-11-08 10:00:06 UTC
  • mfrom: (1.3.8)
  • Revision ID: package-import@ubuntu.com-20121108100006-xpf89hktfitzuqc3
Tags: 1.9+build1-0ubuntu0.11.10.1
* New upstream stable release to support Thunderbird 17 (CALENDAR_1_9_BUILD1)
  - see LP: #1080212 for USN information

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
import pymake.data, pymake.util
 
1
import pymake.data, pymake.functions, pymake.util
2
2
import unittest
3
3
import re
4
4
from cStringIO import StringIO
74
74
            self.assertEqual(goti, di,
75
75
                             "debugitems, iteration %i, got %r expected %r" % (i, goti, di))
76
76
 
 
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)
 
81
 
 
82
        self.assertEqual(s1, s2)
 
83
 
 
84
    def test_expansion_simple(self):
 
85
        s1 = pymake.data.Expansion(None)
 
86
        s2 = pymake.data.Expansion(None)
 
87
 
 
88
        self.assertEqual(s1, s2)
 
89
 
 
90
        s1.appendstr('foo')
 
91
        s2.appendstr('foo')
 
92
        self.assertEqual(s1, s2)
 
93
 
 
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)
 
98
 
 
99
        s1.appendstr('foo')
 
100
        s2.appendstr('foo')
 
101
 
 
102
        s1.appendstr(' bar')
 
103
        s1.appendstr(' baz')
 
104
        s2.appendstr(' bar baz')
 
105
 
 
106
        self.assertEqual(s1, s2)
 
107
 
 
108
    def test_function(self):
 
109
        s1 = pymake.data.Expansion(None)
 
110
        s2 = pymake.data.Expansion(None)
 
111
 
 
112
        n1 = pymake.data.StringExpansion('FOO', None)
 
113
        n2 = pymake.data.StringExpansion('FOO', None)
 
114
 
 
115
        v1 = pymake.functions.VariableRef(None, n1)
 
116
        v2 = pymake.functions.VariableRef(None, n2)
 
117
 
 
118
        s1.appendfunc(v1)
 
119
        s2.appendfunc(v2)
 
120
 
 
121
        self.assertEqual(s1, s2)
 
122
 
 
123
 
 
124
class StringExpansionTest(unittest.TestCase):
 
125
    def test_base_expansion_interface(self):
 
126
        s1 = pymake.data.StringExpansion('FOO', None)
 
127
 
 
128
        self.assertTrue(s1.is_static_string)
 
129
 
 
130
        funcs = list(s1.functions())
 
131
        self.assertEqual(len(funcs), 0)
 
132
 
 
133
        funcs = list(s1.functions(True))
 
134
        self.assertEqual(len(funcs), 0)
 
135
 
 
136
        refs = list(s1.variable_references())
 
137
        self.assertEqual(len(refs), 0)
 
138
 
 
139
 
 
140
class ExpansionTest(unittest.TestCase):
 
141
    def test_is_static_string(self):
 
142
        e1 = pymake.data.Expansion()
 
143
        e1.appendstr('foo')
 
144
 
 
145
        self.assertTrue(e1.is_static_string)
 
146
 
 
147
        e1.appendstr('bar')
 
148
        self.assertTrue(e1.is_static_string)
 
149
 
 
150
        vname = pymake.data.StringExpansion('FOO', None)
 
151
        func = pymake.functions.VariableRef(None, vname)
 
152
 
 
153
        e1.appendfunc(func)
 
154
 
 
155
        self.assertFalse(e1.is_static_string)
 
156
 
 
157
    def test_get_functions(self):
 
158
        e1 = pymake.data.Expansion()
 
159
        e1.appendstr('foo')
 
160
 
 
161
        vname1 = pymake.data.StringExpansion('FOO', None)
 
162
        vname2 = pymake.data.StringExpansion('BAR', None)
 
163
 
 
164
        func1 = pymake.functions.VariableRef(None, vname1)
 
165
        func2 = pymake.functions.VariableRef(None, vname2)
 
166
 
 
167
        e1.appendfunc(func1)
 
168
        e1.appendfunc(func2)
 
169
 
 
170
        funcs = list(e1.functions())
 
171
        self.assertEqual(len(funcs), 2)
 
172
 
 
173
        func3 = pymake.functions.SortFunction(None)
 
174
        func3.append(vname1)
 
175
 
 
176
        e1.appendfunc(func3)
 
177
 
 
178
        funcs = list(e1.functions())
 
179
        self.assertEqual(len(funcs), 3)
 
180
 
 
181
        refs = list(e1.variable_references())
 
182
        self.assertEqual(len(refs), 2)
 
183
 
 
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()
 
189
        e2.appendfunc(func1)
 
190
 
 
191
        func2 = pymake.functions.SortFunction(None)
 
192
        func2.append(e2)
 
193
 
 
194
        e1.appendfunc(func2)
 
195
 
 
196
        funcs = list(e1.functions())
 
197
        self.assertEqual(len(funcs), 1)
 
198
 
 
199
        funcs = list(e1.functions(True))
 
200
        self.assertEqual(len(funcs), 2)
 
201
 
 
202
        self.assertTrue(isinstance(funcs[0], pymake.functions.SortFunction))
 
203
 
 
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)
 
208
        e.appendfunc(func1)
 
209
 
 
210
        self.assertFalse(e.is_filesystem_dependent)
 
211
 
 
212
        func2 = pymake.functions.WildcardFunction(None)
 
213
        func2.append(vname1)
 
214
        e.appendfunc(func2)
 
215
 
 
216
        self.assertTrue(e.is_filesystem_dependent)
 
217
 
 
218
    def test_is_filesystem_dependent_descend(self):
 
219
        sort = pymake.functions.SortFunction(None)
 
220
        wildcard = pymake.functions.WildcardFunction(None)
 
221
 
 
222
        e = pymake.data.StringExpansion('foo/*', None)
 
223
        wildcard.append(e)
 
224
 
 
225
        e = pymake.data.Expansion(None)
 
226
        e.appendfunc(wildcard)
 
227
 
 
228
        sort.append(e)
 
229
 
 
230
        e = pymake.data.Expansion(None)
 
231
        e.appendfunc(sort)
 
232
 
 
233
        self.assertTrue(e.is_filesystem_dependent)
 
234
 
 
235
 
77
236
if __name__ == '__main__':
78
237
    unittest.main()