Coverage for tests/test_dictField.py : 22%

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
#!/usr/bin/env python
# # LSST Data Management System # Copyright 2008, 2009, 2010 LSST Corporation. # # This product includes software developed by the # LSST Project (http://www.lsst.org/). # # 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 LSST License Statement and # the GNU General Public License along with this program. If not, # see <http://www.lsstcorp.org/LegalNotices/>. #
try: class BadKeytype(pexConfig.Config): d = pexConfig.DictField("...", keytype=list, itemtype=int) except Exception: pass else: raise SyntaxError("Unsupported keyptype DictFields should not be allowed")
try: class BadItemtype(pexConfig.Config): d = pexConfig.DictField("...", keytype=int, itemtype=dict) except Exception: pass else: raise SyntaxError("Unsupported itemtype DictFields should not be allowed")
try: class BadItemCheck(pexConfig.Config): d = pexConfig.DictField("...", keytype=int, itemtype=int, itemCheck=4) except Exception: pass else: raise SyntaxError("Non-callable itemCheck DictFields should not be allowed")
try: class BadDictCheck(pexConfig.Config): d = pexConfig.DictField("...", keytype=int, itemtype=int, dictCheck=4) except Exception: pass else: raise SyntaxError("Non-callable dictCheck DictFields should not be allowed")
c = Config1() self.assertRaises(pexConfig.FieldValidationError, setattr, c, "d1", {3: 3}) self.assertRaises(pexConfig.FieldValidationError, setattr, c, "d1", {"a": 0}) self.assertRaises(pexConfig.FieldValidationError, setattr, c, "d1", [1.2, 3, 4]) c.d1 = None c.d1 = {"a": 1, "b": 2} self.assertRaises(pexConfig.FieldValidationError, setattr, c, "d3", {"hi": True}) c.d3 = {4: 5} self.assertEqual(c.d3, {4.: 5.}) d = {"a": None, "b": 4, "c": "foo"} c.d4 = d self.assertEqual(c.d4, d) c.d4["a"] = 12 c.d4[u"b"] = "three" c.d4["c"] = None self.assertEqual(c.d4["a"], 12) self.assertEqual(c.d4["b"], "three") self.assertEqual(c.d4["c"], None) self.assertRaises(pexConfig.FieldValidationError, setattr, c, "d4", {"hi": [1, 2, 3]})
c = Config1() self.assertRaises(pexConfig.FieldValidationError, Config1.validate, c)
c.d2 = {"a": "b"} c.validate()
c = Config1() self.assertRaises(pexConfig.FieldValidationError, c.d1.__setitem__, 2, 0) self.assertRaises(pexConfig.FieldValidationError, c.d1.__setitem__, "hi", 0) c.d1["hi"] = 10 self.assertEqual(c.d1, {"hi": 10})
c.d3 = {} c.d3[4] = 5 self.assertEqual(c.d3, {4.: 5.})
c = Config1() self.assertRaises(pexConfig.FieldValidationError, setattr, c.d1, "should", "fail")
"""Test DictField.__eq__
We create two dicts, with the keys explicitly added in a different order and test their equality. """ keys1 = ['A', 'B', 'C'] keys2 = ['X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e']
c1 = Config1() c1.d4 = {k: "" for k in keys1} for k in keys2: c1.d4[k] = ""
c2 = Config1() for k in keys2 + keys1: c2.d4[k] = ""
self.assertTrue(pexConfig.compareConfigs('test', c1, c2))
lsst.utils.tests.init()
lsst.utils.tests.init() unittest.main() |