Exemple #1
0
 def test_one_surplus_row(self):
     computed = [['anna', 'lotr'],
                 ['luke', 'lotr']]
     expected = [['anna', 'shrek']]
     
     differ = Differ(compare, [str,str])
     differ.match(expected, computed, 0)
     self.assertEqual(differ.missing, [])
     self.assertEqual(differ.surplus, [['luke', 'lotr']])
Exemple #2
0
 def test_two_rows_with_difference(self):
     '''See fitbook Figure 5.3'''
     computed = [['anna', 'lotr'],
                 ['luke', 'lotr']]
     expected = [[Cell('anna'), Cell('shrek')],
                 [Cell('luke'), Cell('lotr')]]
     
     cell = expected[0][1]
     desc = [str ,str]
     #differ = Differ(compare, desc)
     differ = Differ(compare, desc)
     differ.match(expected, computed, 0)
     cell = expected[0][1]
     #print 'missing : %s' % differ.missing
     #print 'surplus : %s' % differ.surplus
     #print expected
     self.assertEqual(cell.expected, 'shrek')
Exemple #3
0
class RowFixture(object):
    def collect(self):
        result = self.query()
        out_result = []

        for row in result:
            if type(row) == dict:
                x = [row.get(attr) for attr in self.column_names]
            else:
                for attr in self.column_names:
                    pass
                    #print string.replace(attr, ' ', '_')
                x = [getattr(row, string.replace(attr, ' ', '_')) for attr in self.column_names]
                
            out_result.append(x)
        return out_result
        
    def process(self, table):
        self.column_names = [str(x) for x in table.rows[1]]
        computed = self.collect()
        expected_values = table.rows[2:]

        def compare_row2(expected_values,calculated):
            print 'compare_row'
            for expected_value, calculated_value in zip(expected_values, calculated):
                self.engine.compare(expected_value, calculated_value)

        if len(computed):
            desc = []
            for cell in computed[0]:
                desc.append(type(cell))
        else:
            desc = []
            for cell in table.rows[1]:
                desc.append(str)
        self.differ = Differ(compare_row2, desc)
        self.differ.match(expected_values, computed, 0)
        for row in self.differ.missing:
            row[0].missing()
        for row in self.differ.surplus:
            table.append_row(row)