def test_json_config(self):
c = config.BaseConfig(initial_config_file="test/test.json")
content_dict = self._get_json_config() for key in content_dict.keys():
self.assertEqual(content_dict[key], c._config[key])
def test_python_config(self):
c = config.BaseConfig(initial_config_file="test/test.py")
config_dict = self._get_python_config() for key in config_dict.keys():
self.assertEqual(config_dict[key], c._config[key])
def get_unlocked_ROD(self):
r = config.ReadOnlyDict(self.control_dict) return r
def get_locked_ROD(self):
r = config.ReadOnlyDict(self.control_dict)
r.lock() return r
def test_create_ROD(self):
r = self.get_unlocked_ROD()
self.assertEqual(
r, self.control_dict, msg="can't transfer dict to ReadOnlyDict"
)
def test_pop_item(self):
r = self.get_unlocked_ROD()
r.popitem()
self.assertEqual(
len(r),
len(self.control_dict) - 1,
msg="can't popitem() ReadOnlyDict when unlocked",
)
def test_pop(self):
r = self.get_unlocked_ROD()
r.pop("e")
self.assertEqual(
len(r),
len(self.control_dict) - 1,
msg="can't pop() ReadOnlyDict when unlocked",
)
def test_set(self):
r = self.get_unlocked_ROD()
r["e"] = "yarrr"
self.assertEqual(
r["e"], "yarrr", msg="can't set var in ReadOnlyDict when unlocked"
)
def test_del(self):
r = self.get_unlocked_ROD() del r["e"]
self.assertEqual(
len(r),
len(self.control_dict) - 1,
msg="can't del in ReadOnlyDict when unlocked",
)
def test_clear(self):
r = self.get_unlocked_ROD()
r.clear()
self.assertEqual(r, {}, msg="can't clear() ReadOnlyDict when unlocked")
def test_set_default(self):
r = self.get_unlocked_ROD() for key in self.control_dict.keys():
r.setdefault(key, self.control_dict[key])
self.assertEqual(
r, self.control_dict, msg="can't setdefault() ReadOnlyDict when unlocked"
)
def test_locked_set(self):
r = self.get_locked_ROD() # TODO use |with self.assertRaises(AssertionError):| if/when we're # all on 2.7. try:
r["e"] = 2 except AssertionError: pass else:
self.assertEqual(0, 1, msg="can set r['e'] when locked")
def test_locked_del(self):
r = self.get_locked_ROD() try: del r["e"] except AssertionError: pass else:
self.assertEqual(0, 1, "can del r['e'] when locked")
def test_locked_popitem(self):
r = self.get_locked_ROD()
self.assertRaises(AssertionError, r.popitem)
def test_locked_update(self):
r = self.get_locked_ROD()
self.assertRaises(AssertionError, r.update, {})
def test_locked_set_default(self):
r = self.get_locked_ROD()
self.assertRaises(AssertionError, r.setdefault, {})
def test_locked_pop(self):
r = self.get_locked_ROD()
self.assertRaises(AssertionError, r.pop)
def test_locked_clear(self):
r = self.get_locked_ROD()
self.assertRaises(AssertionError, r.clear)
def test_locked_second_level_dict_pop(self):
r = self.get_locked_ROD()
self.assertRaises(AssertionError, r["c"].update, {})
def test_locked_second_level_list_pop(self):
r = self.get_locked_ROD() with self.assertRaises(AttributeError):
r["e"].pop()
def test_locked_third_level_mutate(self):
r = self.get_locked_ROD() with self.assertRaises(AttributeError):
r["d"]["turtles"].append("turtle2")
def test_locked_object_in_tuple_mutate(self):
r = self.get_locked_ROD() with self.assertRaises(AttributeError):
r["e"][2]["turtles"].append("turtle2")
def test_locked_second_level_dict_pop2(self):
r = self.get_locked_ROD()
self.assertRaises(AssertionError, r["c"].update, {})
def test_locked_second_level_list_pop2(self):
r = self.get_locked_ROD() with self.assertRaises(AttributeError):
r["e"].pop()
def test_locked_third_level_mutate2(self):
r = self.get_locked_ROD() with self.assertRaises(AttributeError):
r["d"]["turtles"].append("turtle2")
def test_locked_object_in_tuple_mutate2(self):
r = self.get_locked_ROD() with self.assertRaises(AttributeError):
r["e"][2]["turtles"].append("turtle2")
def test_locked_deepcopy_set(self):
r = self.get_locked_ROD()
c = deepcopy(r)
c["e"] = "hey"
self.assertEqual(c["e"], "hey", "can't set var in ROD after deepcopy")
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.