def test_extension_list_sync(self): """Testing extension list synchronization cross-process.""" key = "extension-list-sync" manager1 = ExtensionManager(key) manager2 = ExtensionManager(key) for manager in (manager1, manager2): manager._entrypoint_iterator = Mock(return_value=[self.fake_entrypoint]) manager1.load() manager2.load() self.assertEqual(len(manager1.get_installed_extensions()), 1) self.assertEqual(len(manager2.get_installed_extensions()), 1) self.assertEqual(len(manager1.get_enabled_extensions()), 0) self.assertEqual(len(manager2.get_enabled_extensions()), 0) manager1.enable_extension(self.extension_class.id) self.assertEqual(len(manager1.get_enabled_extensions()), 1) self.assertEqual(len(manager2.get_enabled_extensions()), 0) self.assertFalse(manager1.is_expired()) self.assertTrue(manager2.is_expired()) manager2.load(full_reload=True) self.assertEqual(len(manager1.get_enabled_extensions()), 1) self.assertEqual(len(manager2.get_enabled_extensions()), 1) self.assertFalse(manager1.is_expired()) self.assertFalse(manager2.is_expired())
def test_extension_list_sync(self): """Testing ExtensionManager extension list synchronization cross-process.""" key = 'extension-list-sync' manager1 = ExtensionManager(key) manager2 = ExtensionManager(key) for manager in (manager1, manager2): manager._entrypoint_iterator = Mock( return_value=[self.fake_entrypoint] ) manager1.load() manager2.load() self.assertEqual(len(manager1.get_installed_extensions()), 1) self.assertEqual(len(manager2.get_installed_extensions()), 1) self.assertEqual(len(manager1.get_enabled_extensions()), 0) self.assertEqual(len(manager2.get_enabled_extensions()), 0) manager1.enable_extension(self.extension_class.id) self.assertEqual(len(manager1.get_enabled_extensions()), 1) self.assertEqual(len(manager2.get_enabled_extensions()), 0) self.assertFalse(manager1.is_expired()) self.assertTrue(manager2.is_expired()) manager2.load(full_reload=True) self.assertEqual(len(manager1.get_enabled_extensions()), 1) self.assertEqual(len(manager2.get_enabled_extensions()), 1) self.assertFalse(manager1.is_expired()) self.assertFalse(manager2.is_expired())
def test_extension_settings_sync(self): """Testing ExtensionManager extension settings synchronization cross-process.""" key = 'extension-settings-sync' setting_key = 'foo' setting_val = 'abc123' manager1 = ExtensionManager(key) manager2 = ExtensionManager(key) for manager in (manager1, manager2): manager._entrypoint_iterator = Mock( return_value=[self.fake_entrypoint] ) manager1.load() extension1 = manager1.enable_extension(self.extension_class.id) manager2.load() self.assertFalse(manager1.is_expired()) self.assertFalse(manager2.is_expired()) extension2 = manager2.get_enabled_extension(self.extension_class.id) self.assertNotEqual(extension2, None) self.assertFalse(setting_key in extension1.settings) self.assertFalse(setting_key in extension2.settings) extension1.settings[setting_key] = setting_val extension1.settings.save() self.assertFalse(setting_key in extension2.settings) self.assertFalse(manager1.is_expired()) self.assertTrue(manager2.is_expired()) manager2.load(full_reload=True) extension2 = manager2.get_enabled_extension(self.extension_class.id) self.assertFalse(manager1.is_expired()) self.assertFalse(manager2.is_expired()) self.assertTrue(setting_key in extension1.settings) self.assertTrue(setting_key in extension2.settings) self.assertEqual(extension1.settings[setting_key], setting_val) self.assertEqual(extension2.settings[setting_key], setting_val)