Coverage for tests/test_cliOption.py : 97%

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 daf_butler dataset-type CLI option.
23"""
25import unittest
27from lsst.daf.butler.registry import CollectionType
28from lsst.daf.butler.tests import (OptFlagTest,
29 OptCaseInsensitiveTest,
30 OptChoiceTest,
31 OptHelpTest,
32 OptMultipleTest,
33 OptRequiredTest,
34 OptSplitKeyValueTest)
35from lsst.daf.butler.cli.opt import (collection_type_option, config_file_option, config_option,
36 dataset_type_option, directory_argument, glob_parameter,
37 log_level_option, long_log_option, repo_argument, transfer_option,
38 verbose_option)
41class CollectionTypeTestCase(OptHelpTest,
42 OptCaseInsensitiveTest,
43 OptChoiceTest,
44 OptRequiredTest,
45 unittest.TestCase):
46 optionClass = collection_type_option
47 optionName = "collection-type"
48 choices = ["CHAINED", "RUN", "TAGGED"]
49 expectedChoiceValues = [CollectionType.CHAINED, CollectionType.RUN, CollectionType.TAGGED]
52class ConfigTestCase(OptHelpTest,
53 OptMultipleTest,
54 OptRequiredTest,
55 OptSplitKeyValueTest,
56 unittest.TestCase):
57 metavar = "test metavar"
58 optionName = "config"
59 shortOptionName = "c"
60 optionClass = config_option
61 optionMultipleKeyValues = ["one=two,three=four", "five=six"]
64class ConfigFileTestCase(OptHelpTest,
65 OptMultipleTest,
66 OptRequiredTest,
67 unittest.TestCase):
68 optionName = "config-file"
69 shortOptionName = "C"
70 optionClass = config_file_option
73class DatasetTypeTestCase(OptHelpTest,
74 OptMultipleTest,
75 OptRequiredTest,
76 unittest.TestCase):
78 optionClass = dataset_type_option
79 optionName = "dataset-type"
80 shortOptionName = "d"
83class DirectoryArgumentTestCase(OptHelpTest,
84 OptRequiredTest,
85 unittest.TestCase):
86 optionClass = directory_argument
87 optionName = "directory"
88 isArgument = True
91class GlobArgumentTestCase(OptHelpTest,
92 OptRequiredTest,
93 OptMultipleTest,
94 unittest.TestCase):
95 optionClass = glob_parameter
96 optionName = "glob"
97 isArgument = True
98 isParameter = True
101class GlobOptionTestCase(OptHelpTest,
102 OptRequiredTest,
103 OptMultipleTest,
104 unittest.TestCase):
105 optionClass = glob_parameter
106 optionName = "glob"
107 isParameter = True
110class LogLevelTestCase(OptChoiceTest,
111 OptHelpTest,
112 OptCaseInsensitiveTest,
113 OptRequiredTest,
114 unittest.TestCase):
116 expectedValDefault = {"": log_level_option.defaultValue}
117 optionClass = log_level_option
118 optionName = "log-level"
119 choices = ["DEBUG", "lsst.daf.butler=DEBUG"]
120 expectedChoiceValues = [{'': "DEBUG"}, {"lsst.daf.butler": "DEBUG"}]
123class LongLogOption(OptFlagTest,
124 OptHelpTest,
125 unittest.TestCase):
126 optionClass = long_log_option
127 optionName = "long-log"
130class RepoArgumentTestCase(OptHelpTest,
131 OptRequiredTest,
132 unittest.TestCase):
133 isArgument = True
134 optionClass = repo_argument
135 optionName = "repo"
138class TransferTestCase(OptChoiceTest,
139 OptHelpTest,
140 OptRequiredTest,
141 unittest.TestCase):
142 expectedValDefault = "auto"
143 optionClass = transfer_option
144 optionName = "transfer"
145 shortOptionName = "t"
148# Doesn't test for required; this is nonsensical for a flag (where
149# present=True and not-present=False)
150class VerboseTestCase(OptFlagTest,
151 OptHelpTest,
152 unittest.TestCase):
153 optionClass = verbose_option
154 optionName = "verbose"
155 isBool = True
156 expectedValDefault = "False"
159if __name__ == "__main__": 159 ↛ 160line 159 didn't jump to line 160, because the condition on line 159 was never true
160 unittest.main()