'Ensure shadow tables are empty
This method ensures that all the shadow tables in the schema,
except for specificially named exceptions, are empty. This
makes sure that archiving isn\'t moving unexpected content.'

def _assert_shadow_tables_empty_except(self, *exceptions):

    metadata = MetaData(bind=self.engine)
    metadata.reflect()
    for table in metadata.tables:
        if (table.startswith('shadow_') and (table not in exceptions)):
            rows = self.conn.execute(('select    *    from    %s' % table)).fetchall()
            self.assertEqual(rows, [], ('Table    %s    not    empty' % table))
