Coverage for tests/test_cliOptionRepo.py : 48%

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/>.
22"""Unit tests for the 'repo' shared CLI option.
23"""
25import click
26import click.testing
27import unittest
29from lsst.daf.butler.cli.opt.repo import repo_option
32@click.command()
33@repo_option(required=True)
34def repoRequired(repo):
35 pass
38@click.command()
39@repo_option() # required default val is False
40def repoNotRequired(repo):
41 pass
44@click.command()
45@repo_option(help="custom help text")
46def repoWithHelpText(repo):
47 pass
50class Suite(unittest.TestCase):
52 def testRequired_provided(self):
53 runner = click.testing.CliRunner()
54 result = runner.invoke(repoRequired, ["--repo", "location"])
55 self.assertEqual(result.exit_code, 0)
57 def testRequired_notProvided(self):
58 runner = click.testing.CliRunner()
59 result = runner.invoke(repoRequired)
60 self.assertNotEqual(result.exit_code, 0)
61 self.assertIn('Missing option "--repo"', result.output)
63 def testNotRequired_provided(self):
64 runner = click.testing.CliRunner()
65 result = runner.invoke(repoNotRequired, ["--repo", "location"])
66 self.assertEqual(result.exit_code, 0)
68 def testNotRequired_notProvided(self):
69 runner = click.testing.CliRunner()
70 result = runner.invoke(repoNotRequired)
71 self.assertEqual(result.exit_code, 0)
73 def testHelp(self):
74 runner = click.testing.CliRunner()
75 result = runner.invoke(repoWithHelpText, "--help")
76 self.assertIn("custom help text", result.output)
79if __name__ == "__main__": 79 ↛ 80line 79 didn't jump to line 80, because the condition on line 79 was never true
80 unittest.main()