| # test_migration.py - Tests for swift_build_support.migration -*- python -*- |
| # |
| # This source file is part of the Swift.org open source project |
| # |
| # Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors |
| # Licensed under Apache License v2.0 with Runtime Library Exception |
| # |
| # See https://swift.org/LICENSE.txt for license information |
| # See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors |
| |
| import argparse |
| import os |
| import unittest |
| |
| from swift_build_support import migration |
| |
| |
| class MigrateImplArgsTestCase(unittest.TestCase): |
| def test_report_unknown_args(self): |
| parser = argparse.ArgumentParser() |
| parser.add_argument('-R', '--release', action='store_true') |
| parser.add_argument('-T', '--validation-test', action='store_true') |
| parser.add_argument('--darwin-xcrun-toolchain') |
| |
| args = migration.parse_args( |
| parser, |
| ['-RT', '--unknown', 'true', '--darwin-xcrun-toolchain=foo', '--', |
| '--darwin-xcrun-toolchain=bar', '--other']) |
| |
| self.assertEqual( |
| args, |
| argparse.Namespace( |
| release=True, |
| validation_test=True, |
| darwin_xcrun_toolchain='bar', |
| build_script_impl_args=['--unknown', 'true', '--other'])) |
| |
| def test_no_unknown_args(self): |
| parser = argparse.ArgumentParser() |
| parser.add_argument('-R', '--release', action='store_true') |
| parser.add_argument('-T', '--validation-test', action='store_true') |
| parser.add_argument('--darwin-xcrun-toolchain') |
| |
| args = migration.parse_args( |
| parser, |
| ['-RT', '--darwin-xcrun-toolchain=bar']) |
| |
| self.assertEqual( |
| args, |
| argparse.Namespace( |
| release=True, |
| validation_test=True, |
| darwin_xcrun_toolchain='bar', |
| build_script_impl_args=[])) |
| |
| def test_check_impl_args(self): |
| # Assuming file locations: |
| # utils/swift_build_support/tests/test_migration.py |
| # utils/build-script-impl |
| build_script_impl = os.path.join( |
| os.path.dirname(__file__), '..', '..', 'build-script-impl') |
| |
| self.assertIsNone(migration.check_impl_args(build_script_impl, |
| ['--reconfigure'])) |
| |
| with self.assertRaises(ValueError) as cm: |
| migration.check_impl_args(build_script_impl, ['foo']) |
| self.assertIn('foo', str(cm.exception)) |
| |
| with self.assertRaises(ValueError) as cm: |
| migration.check_impl_args(build_script_impl, ['--reconfigure', |
| '--foo=true']) |
| self.assertIn('foo', str(cm.exception)) |
| |
| |
| if __name__ == '__main__': |
| unittest.main() |