Coverage for tests/test_configChoiceField.py : 33%

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
# This file is part of pex_config. # # Developed for the LSST Data Management System. # This product includes software developed by the LSST Project # (http://www.lsst.org). # See the COPYRIGHT file at the top-level directory of this distribution # for details of code ownership. # # This software is dual licensed under the GNU General Public License and also # under a 3-clause BSD license. Recipients may choose which of these licenses # to use; please see the files gpl-3.0.txt and/or bsd_license.txt, # respectively. If you choose the GPL option then the following text applies # (but note that there is still no warranty even if you opt for BSD instead): # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>.
pexConfig.Config.validate(self) if self.f <= 0: raise pexConfig.FieldValidationError(Config1.f, self, "f should be > 0")
typemap=TYPEMAP, default="AAA", multi=False, optional=False) typemap=TYPEMAP, default="AAA", multi=False, optional=True) typemap=TYPEMAP, default=["AAA"], multi=True, optional=False) typemap=TYPEMAP, default=["AAA"], multi=True, optional=True)
self.config = Config3()
del self.config
self.assertEqual(self.config.a.name, "AAA") self.assertEqual(self.config.a.active.f, 4) self.assertEqual(self.config.a["AAA"].f, 4) self.assertEqual(self.config.a["BBB"].f, 0.5)
self.config.a["AAA"].f = 1 self.config.a["BBB"].f = 1.0 self.config.a = "BBB" path = "choiceFieldTest.config" self.config.save(path) roundtrip = Config3() roundtrip.load(path) os.remove(path)
self.assertEqual(self.config.a.name, roundtrip.a.name) self.assertEqual(self.config.a["AAA"].f, roundtrip.a["AAA"].f) self.assertEqual(self.config.a["BBB"].f, roundtrip.a["BBB"].f)
self.config.validate() self.config.a = "AAA" self.config.a["AAA"].f = 0
self.assertRaises(pexConfig.FieldValidationError, self.config.validate)
self.config.a = "BBB" self.config.validate()
self.config.a = None self.assertRaises(pexConfig.FieldValidationError, self.config.validate)
self.config.freeze() self.assertRaises(pexConfig.FieldValidationError, setattr, self.config.a, "name", "AAA") self.assertRaises(pexConfig.FieldValidationError, setattr, self.config.a["AAA"], "f", "1")
self.assertRaises(pexConfig.FieldValidationError, setattr, self.config.a, "should", "fail")
# test in place modification self.config.c.names.add("BBB") self.assertEqual(set(self.config.c.names), set(["AAA", "BBB"])) self.config.c.names.remove("AAA") self.assertEqual(set(self.config.c.names), set(["BBB"])) self.assertRaises(KeyError, self.config.c.names.remove, "AAA") self.config.c.names.discard("AAA")
# test bad assignment self.assertRaises(pexConfig.FieldValidationError, setattr, self.config.c, "names", "AAA") self.config.c.names = ["AAA"]
self.config.a = None self.assertRaises(pexConfig.FieldValidationError, self.config.validate) self.config.a = "AAA" self.config.b = None self.config.validate() self.config.c = None self.assertRaises(pexConfig.FieldValidationError, self.config.validate) self.config.c = ["AAA"] self.config.d = None self.config.validate()
unittest.main() |