Coverage for python/lsst/daf/butler/tests/utils.py : 24%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1# This file is part of daf_butler.
2#
3# Developed for the LSST Data Management System.
4# This product includes software developed by the LSST Project
5# (http://www.lsst.org).
6# See the COPYRIGHT file at the top-level directory of this distribution
7# for details of code ownership.
8#
9# This program is free software: you can redistribute it and/or modify
10# it under the terms of the GNU General Public License as published by
11# the Free Software Foundation, either version 3 of the License, or
12# (at your option) any later version.
13#
14# This program is distributed in the hope that it will be useful,
15# but WITHOUT ANY WARRANTY; without even the implied warranty of
16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17# GNU General Public License for more details.
18#
19# You should have received a copy of the GNU General Public License
20# along with this program. If not, see <http://www.gnu.org/licenses/>.
23from astropy.table import Table as AstropyTable
24from astropy.utils.diff import report_diff_values
25import io
28class ButlerTestHelper:
29 """Mixin with helpers for unit tests."""
31 def assertAstropyTablesEqual(self, tables, expectedTables):
32 """Verify that a list of astropy tables matches a list of expected
33 astropy tables.
35 Parameters
36 ----------
37 tables : `astropy.table.Table` or iterable [`astropy.table.Table`]
38 The table or tables that should match the expected tables.
39 expectedTables : `astropy.table.Table`
40 or iterable [`astropy.table.Table`]
41 The tables with expected values to which the tables under test will
42 be compared.
43 """
44 # If a single table is passed in for tables or expectedTables, put it
45 # in a list.
46 if isinstance(tables, AstropyTable):
47 tables = [tables]
48 if isinstance(expectedTables, AstropyTable):
49 expectedTables = [expectedTables]
50 diff = io.StringIO()
51 self.assertEqual(len(tables), len(expectedTables))
52 for table, expected in zip(tables, expectedTables):
53 # Assert that we are testing what we think we are testing:
54 self.assertIsInstance(table, AstropyTable)
55 self.assertIsInstance(expected, AstropyTable)
56 # Assert that they match:
57 self.assertTrue(report_diff_values(table, expected, fileobj=diff), msg="\n" + diff.getvalue())