Hide keyboard shortcuts

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/>. 

21 

22"""Unit tests for the 'repo' shared CLI option. 

23""" 

24 

25import click 

26import click.testing 

27import unittest 

28 

29from lsst.daf.butler.cli.opt.repo import repo_option 

30 

31 

32@click.command() 

33@repo_option(required=True) 

34def repoRequired(repo): 

35 pass 

36 

37 

38@click.command() 

39@repo_option() # required default val is False 

40def repoNotRequired(repo): 

41 pass 

42 

43 

44@click.command() 

45@repo_option(help="custom help text") 

46def repoWithHelpText(repo): 

47 pass 

48 

49 

50class Suite(unittest.TestCase): 

51 

52 def testRequired_provided(self): 

53 runner = click.testing.CliRunner() 

54 result = runner.invoke(repoRequired, ["--repo", "location"]) 

55 self.assertEqual(result.exit_code, 0) 

56 

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) 

62 

63 def testNotRequired_provided(self): 

64 runner = click.testing.CliRunner() 

65 result = runner.invoke(repoNotRequired, ["--repo", "location"]) 

66 self.assertEqual(result.exit_code, 0) 

67 

68 def testNotRequired_notProvided(self): 

69 runner = click.testing.CliRunner() 

70 result = runner.invoke(repoNotRequired) 

71 self.assertEqual(result.exit_code, 0) 

72 

73 def testHelp(self): 

74 runner = click.testing.CliRunner() 

75 result = runner.invoke(repoWithHelpText, "--help") 

76 self.assertIn("custom help text", result.output) 

77 

78 

79if __name__ == "__main__": 79 ↛ 80line 79 didn't jump to line 80, because the condition on line 79 was never true

80 unittest.main()