| #!/usr/bin/env python |
| # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| """Tests for module csv_pivot_table_merger.""" |
| |
| import csv_pivot_table_merger |
| import os |
| import tempfile |
| import test_utils |
| import unittest |
| |
| |
| ACTUAL_OUTPUT_FILENAME = 'actual_output' |
| |
| |
| class TestCsvMerger(unittest.TestCase): |
| |
| def setUp(self): |
| self._test_csv_dir = os.path.join( |
| os.path.dirname(os.path.realpath(__file__)), |
| 'test_data', 'csv_pivot_table_merger') |
| self._actual_output = os.path.join(tempfile.mkdtemp(), |
| ACTUAL_OUTPUT_FILENAME) |
| |
| def tearDown(self): |
| os.remove(self._actual_output) |
| |
| def test_E2EMerger(self): |
| merger = csv_pivot_table_merger.CsvMerger( |
| csv_dir=self._test_csv_dir, output_csv_name=self._actual_output, |
| value_column_name='avg', handle_strings=False) |
| merger.Merge() |
| |
| # Compare actual with expected. |
| expected_csv = os.path.join(self._test_csv_dir, 'expected_output') |
| test_utils.assertCSVs(expected_csv, self._actual_output) |
| |
| def test_E2EMergerWithDiffColName(self): |
| merger = csv_pivot_table_merger.CsvMerger( |
| csv_dir=self._test_csv_dir, output_csv_name=self._actual_output, |
| value_column_name='pct_001', handle_strings=False) |
| merger.Merge() |
| |
| # Compare actual with expected. |
| expected_csv = os.path.join(self._test_csv_dir, |
| 'expected_output_diff_col_name') |
| test_utils.assertCSVs(expected_csv, self._actual_output) |
| |
| def test_E2EMergerWithStrings(self): |
| merger = csv_pivot_table_merger.CsvMerger( |
| csv_dir=self._test_csv_dir, output_csv_name=self._actual_output, |
| value_column_name='avg', handle_strings=True) |
| merger.Merge() |
| |
| # Compare actual with expected. |
| expected_csv = os.path.join(self._test_csv_dir, |
| 'expected_output_with_strings') |
| test_utils.assertCSVs(expected_csv, self._actual_output) |
| |
| |
| if __name__ == '__main__': |
| unittest.main() |
| |