示例#1
0
 def test_update_properties_remove_property_leaves_protected(self):
     devname = "sys/tg_test/2"
     dev = find_device(self.dbdict, devname)[0]
     dev["properties"]["polled_attr"] = ["a", "b"]
     orig_dev = find_device(self.dbdict, devname)[0]
     added, removed = update_properties(self.db, devname,
                                        orig_dev["properties"],
                                        dev["properties"])
     self.assertDictEqual(added, {})
     self.assertDictEqual(removed, {})
示例#2
0
 def test_update_properties_replace_property(self):
     devname = "sys/tg_test/2"
     dev = find_device(self.data, devname)[0]
     dev["properties"]["bepa"] = ["573"]
     orig_dev = find_device(self.dbdict, devname)[0]
     added, removed = update_properties(self.db, devname,
                                        orig_dev["properties"],
                                        dev["properties"])
     self.assertIn("bepa", added)
     self.assertListEqual(
         self.db.calls,
         [('put_device_property', ('sys/tg_test/2', {'bepa': ['573']}), {})])
示例#3
0
    def test_update_properties_dont_add_bad_attribute_propertyx(self):
        "Check that we don't allow unknown attribute properties"
        devname = "sys/tg_test/2"
        label = "This is a test"
        dev = find_device(self.data, devname)[0]
        dev["attribute_properties"]["ampliz"].update({"fish": [label]})

        orig_dev = find_device(self.dbdict, devname)[0]
        with self.assertRaises(KeyError):
            update_properties(self.db, devname,
                              orig_dev["attribute_properties"],
                              dev["attribute_properties"],
                              attribute=True)
示例#4
0
 def test_update_properties_add_property(self):
     devname = "sys/tg_test/2"
     dev = find_device(self.data, devname)[0]
     dev["properties"]["flepp"] = ["56"]
     orig_dev = find_device(self.dbdict, devname)[0]
     added, removed = update_properties(self.db, devname,
                                        orig_dev["properties"],
                                        dev["properties"])
     self.assertDictEqual(added, {"flepp": ["56"]})
     self.assertDictEqual(removed, {})
     self.assertListEqual(
         self.db.calls,
         [('put_device_property', ('sys/tg_test/2', {'flepp': ['56']}), {})])
示例#5
0
 def test_update_properties_add_attribute_property(self):
     devname = "sys/tg_test/2"
     label = "This is a test"
     dev = find_device(self.data, devname)[0]
     dev["attribute_properties"]["someAttr"] = {"label": [label]}
     orig_dev = find_device(self.dbdict, devname)[0]
     added, removed = update_properties(self.db, devname,
                                        orig_dev["attribute_properties"],
                                        dev["attribute_properties"],
                                        attribute=True)
     self.assertDictEqual(added, {"someAttr": {"label": [label]}})
     self.assertDictEqual(removed, {})
     self.assertEqual(len(self.db.calls), 1)
     self.assertListEqual(
         self.db.calls,
         [('put_device_attribute_property',
           ('sys/tg_test/2', {'someAttr': {'label': [label]}}), {})])
示例#6
0
    def test_update_server_removes_protected_property_if_empty(self):

        dev = find_device(self.dbdict, "sys/tg_test/2")[0]
        dev["properties"]["polled_attr"] = ["SomeAttr", "1000"]

        dev = find_device(self.data, "sys/tg_test/2")[0]
        dev["properties"]["polled_attr"] = []

        update_server(self.db, "test",
                      self.data["servers"]["TangoTest"]["test"],
                      self.dbdict["servers"]["TangoTest"]["test"],
                      difactory=Mock)

        self.assertEqual(len(self.db.calls), 1)
        dbcall, args, kwargs = self.db.calls[0]
        self.assertEqual(dbcall, "delete_device_property")
        self.assertEqual(args[0], "sys/tg_test/2")
        self.assertTrue(len(args[1]) == 1)
        self.assertTrue("polled_attr" in args[1])  # can be list or dict
示例#7
0
 def test_update_properties_add_more_attribute_properties(self):
     """Test adding more attribute properties to an attribute that
     has some already"""
     devname = "sys/tg_test/2"
     label = "This is a test"
     dev = find_device(self.data, devname)[0]
     dev["attribute_properties"]["ampliz"].update({"label": [label],
                                                   "unit": ["hejsan"]})
     orig_dev = find_device(self.dbdict, devname)[0]
     added, removed = update_properties(self.db, devname,
                                        orig_dev["attribute_properties"],
                                        dev["attribute_properties"],
                                        attribute=True)
     self.assertDictEqual(added, {"ampliz": {"label": [label]}})
     self.assertDictEqual(removed, {})
     self.assertEqual(len(self.db.calls), 1)
     self.assertListEqual(
         self.db.calls,
         [('put_device_attribute_property',
           ('sys/tg_test/2', {'ampliz': {'label': [label]}}), {})])
示例#8
0
    def test_update_server_doesnt_remove_protected_property(self):

        dev = find_device(self.dbdict, "sys/tg_test/2")[0]
        dev["properties"]["polled_attr"] = ["SomeAttr", "1000"]

        update_server(self.db, "test",
                      self.data["servers"]["TangoTest"]["test"],
                      self.dbdict["servers"]["TangoTest"]["test"],
                      difactory=Mock)

        self.assertEqual(len(self.db.calls), 0)
示例#9
0
    def test_update_server_ignore_property_case(self):

        "Test that property names can be case insensitive"

        dev = find_device(self.data, "sys/tg_test/2", caseless=True)[0]
        dev["properties"]["BEpA"] = ["45"]

        update_server(self.db, "test",
                      self.data["servers"]["TangoTest"]["test"],
                      self.dbdict["servers"]["TangoTest"]["test"],
                      ignore_case=True, difactory=Mock)

        self.assertEqual(len(self.db.calls), 0)
示例#10
0
    def test_update_server_add_property(self):

        dev = find_device(self.data, "sys/tg_test/2")[0]
        dev["properties"]["flepp"] = ["56"]

        update_server(self.db, "test",
                      self.data["servers"]["TangoTest"]["test"],
                      self.dbdict["servers"]["TangoTest"]["test"],
                      difactory=Mock)

        self.assertListEqual(
            self.db.calls,
            [('put_device_property', ('sys/tg_test/2', {'flepp': ['56']}), {})])
示例#11
0
    def test_update_server_ignore_device_case(self):

        "Test that device names can be case insensitive"

        dev = find_device(self.data, "SYS/TG_TESt/2", caseless=True)[0]
        dev["properties"]["flepp"] = ["56"]

        update_server(self.db, "test",
                      self.data["servers"]["TangoTest"]["test"],
                      self.dbdict["servers"]["TangoTest"]["test"],
                      ignore_case=True, difactory=Mock)

        self.assertListEqual(
            self.db.calls,
            [('put_device_property', ('sys/tg_test/2', {'flepp': ['56']}), {})])
示例#12
0
    def test_update_server_remove_property(self):

        dev = find_device(self.data, "sys/tg_test/2")[0]
        del dev["properties"]["bepa"]

        update_server(self.db, "test",
                      self.data["servers"]["TangoTest"]["test"],
                      self.dbdict["servers"]["TangoTest"]["test"],
                      difactory=Mock)

        self.assertEqual(len(self.db.calls), 1)
        dbcall, args, kwargs = self.db.calls[0]
        self.assertEqual(dbcall, "delete_device_property")
        self.assertEqual(args[0], "sys/tg_test/2")
        self.assertTrue(len(args[1]) == 1)
        self.assertTrue("bepa" in args[1])  # can be list or dict
示例#13
0
 def get_device_property(dev, props):
     data, _ = find_device(dbdata, dev)
     return dict((p, data["properties"][p]) for p in props)
示例#14
0
 def get_device_property_list(dev, pattern):
     data, _ = find_device(dbdata, dev)
     return data["properties"].keys()
示例#15
0
 def get_device_info(dev):
     _, (srv, inst, clss, _) = find_device(dbdata, dev)
     return MagicMock(ds_full_name="%s/%s" % (srv, inst), name=dev,
                      class_name=clss)