def test_update_server_no_changes(self): update_server(self.db, "test", self.dbdict["servers"]["TangoTest"]["test"], self.dbdict["servers"]["TangoTest"]["test"], difactory=Mock) self.assertListEqual(self.db.calls, [])
def test_update_server_remove_device_update_skips(self): devname = "sys/tg_test/2" del self.data["servers"]["TangoTest"]["test"]["TangoTest"][devname] update_server(self.db, "test", self.data["servers"]["TangoTest"]["test"], self.dbdict["servers"]["TangoTest"]["test"], update=True, difactory=Mock) self.assertEqual(len(self.db.calls), 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)
def test_update_server_remove_device(self): devname = "sys/tg_test/2" del self.data["servers"]["TangoTest"]["test"]["TangoTest"][devname] 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") self.assertEqual(len(args), 1) self.assertEqual(args[0], devname)
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)
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']}), {})])
def test_update_server_add_empty_device(self): new_devname = "a/new/dev" dev = {} self.data["servers"]["TangoTest"]["test"]["TangoTest"][new_devname] = dev update_server(self.db, "TangoTest/test", self.data["servers"]["TangoTest"]["test"], self.dbdict["servers"]["TangoTest"]["test"], difactory=Mock) # verify the db calls made self.assertEqual(len(self.db.calls), 1) dbcall, args, kwargs = self.db.calls[0] self.assertEqual(dbcall, "add_device") self.assertEqual(len(args), 1) self.assertEqual(args[0].server, "TangoTest/test") self.assertEqual(args[0].name, new_devname)
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']}), {})])
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
def test_update_server_add_device_2(self): new_data = { "TangoTest": { "sys/tg_test/apa": {} } } update_server(self.db, "TangoTest/1", new_data, AppendingDict(), difactory=Mock) self.assertEqual(len(self.db.calls), 1) dbcall, args, kwargs = self.db.calls[0] self.assertEqual(dbcall, 'add_device') self.assertEqual(args[0].name, 'sys/tg_test/apa') self.assertEqual(args[0]._class, "TangoTest") self.assertEqual(args[0].server, "TangoTest/1")
def test_update_server_add_device_with_property(self): new_devname = "a/new/dev" dev = {"properties": {"test": ["hello"]}} self.data["servers"]["TangoTest"]["test"]["TangoTest"][new_devname] = dev update_server(self.db, "TangoTest/test", self.data["servers"]["TangoTest"]["test"], self.dbdict["servers"]["TangoTest"]["test"], difactory=Mock) self.assertEqual(len(self.db.calls), 2) dbcall, args, kwargs = self.db.calls[0] self.assertEqual(dbcall, "add_device") self.assertEqual(len(args), 1) self.assertEqual(args[0].name, new_devname) dbcall, args, kwargs = self.db.calls[1] self.assertEqual(dbcall, "put_device_property") self.assertEqual(len(args), 2) self.assertEqual(args[0], new_devname) self.assertDictEqual(args[1], {"test": ["hello"]})
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