From 4586aee2aefefba2b9b2e96082b2ec2501152a76 Mon Sep 17 00:00:00 2001 From: Kevin Ormbrek Date: Sun, 29 Dec 2013 00:54:55 -0600 Subject: [PATCH] fixes #217 - copy desired capabilities before modifying --- src/Selenium2Library/keywords/_browsermanagement.py | 2 +- test/unit/keywords/test_browsermanagement.py | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Selenium2Library/keywords/_browsermanagement.py b/src/Selenium2Library/keywords/_browsermanagement.py index b1271225f..455ab9529 100644 --- a/src/Selenium2Library/keywords/_browsermanagement.py +++ b/src/Selenium2Library/keywords/_browsermanagement.py @@ -550,7 +550,7 @@ def _create_remote_web_driver(self , capabilities_type , remote_url , desired_ca '''parses the string based desired_capabilities if neccessary and creates the associated remote web driver''' - desired_capabilities_object = capabilities_type + desired_capabilities_object = capabilities_type.copy() if type(desired_capabilities) in (str, unicode): desired_capabilities = self._parse_capabilities_string(desired_capabilities) diff --git a/test/unit/keywords/test_browsermanagement.py b/test/unit/keywords/test_browsermanagement.py index b0faf1871..fd6062c60 100644 --- a/test/unit/keywords/test_browsermanagement.py +++ b/test/unit/keywords/test_browsermanagement.py @@ -70,6 +70,12 @@ def test_create_remote_browser_with_string_desired_prefs(self): self.verify_browser(webdriver.Remote, "chrome", remote="http://127.0.0.1/wd/hub", desired_capabilities=expected_caps) + def test_capabilities_attribute_not_modified(self): + expected_caps = {"some_cap":"42"} + self.verify_browser(webdriver.Remote, "chrome", remote="http://127.0.0.1/wd/hub", + desired_capabilities=expected_caps) + self.assertFalse("some_cap" in webdriver.DesiredCapabilities.CHROME) + def test_set_selenium_timeout_only_affects_open_browsers(self): bm = _BrowserManagementKeywords() first_browser, second_browser = mock(), mock()