tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

publish_package_unittests.py (2304B)


      1 #!/usr/bin/env vpython3
      2 # Copyright 2022 The Chromium Authors
      3 # Use of this source code is governed by a BSD-style license that can be
      4 # found in the LICENSE file.
      5 """File for testing publish_package.py."""
      6 
      7 import argparse
      8 import unittest
      9 import unittest.mock as mock
     10 
     11 from io import StringIO
     12 
     13 import publish_package
     14 
     15 _PACKAGES = ['test_package']
     16 _REPO = 'test_repo'
     17 
     18 
     19 class PublishPackageTest(unittest.TestCase):
     20    """Unittests for publish_package.py."""
     21 
     22    def setUp(self) -> None:
     23        self._ffx_patcher = mock.patch('publish_package.run_ffx_command')
     24        self._ffx_mock = self._ffx_patcher.start()
     25        self.addCleanup(self._ffx_mock.stop)
     26 
     27    def test_new_repo(self) -> None:
     28        """Test setting |new_repo| to True in |publish_packages|."""
     29 
     30        publish_package.publish_packages(_PACKAGES, _REPO, True)
     31        self.assertEqual(self._ffx_mock.call_count, 2)
     32        first_call, second_call = self._ffx_mock.call_args_list
     33        self.assertEqual(['repository', 'create', _REPO],
     34                         first_call.kwargs['cmd'])
     35        self.assertEqual([
     36            'repository', 'publish', '--package-archive', _PACKAGES[0], _REPO
     37        ], second_call.kwargs['cmd'])
     38 
     39    def test_no_new_repo(self) -> None:
     40        """Test setting |new_repo| to False in |publish_packages|."""
     41 
     42        publish_package.publish_packages(['test_package'], 'test_repo', False)
     43        self.assertEqual(self._ffx_mock.call_count, 1)
     44 
     45 
     46    def test_allow_temp_repo(self) -> None:
     47        """Test setting |allow_temp_repo| to True in |register_package_args|."""
     48 
     49        parser = argparse.ArgumentParser()
     50        publish_package.register_package_args(parser, True)
     51        args = parser.parse_args(['--no-repo-init'])
     52        self.assertEqual(args.no_repo_init, True)
     53 
     54    @mock.patch('sys.stderr', new_callable=StringIO)
     55    def test_not_allow_temp_repo(self, mock_stderr) -> None:
     56        """Test setting |allow_temp_repo| to False in
     57        |register_package_args|."""
     58 
     59        parser = argparse.ArgumentParser()
     60        publish_package.register_package_args(parser)
     61        with self.assertRaises(SystemExit):
     62            parser.parse_args(['--no-repo-init'])
     63        self.assertRegex(mock_stderr.getvalue(), 'unrecognized arguments')
     64 
     65 
     66 if __name__ == '__main__':
     67    unittest.main()