diff --git a/AppiumLibrary/__init__.py b/AppiumLibrary/__init__.py index 732e2b34..7ea29a0d 100644 --- a/AppiumLibrary/__init__.py +++ b/AppiumLibrary/__init__.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - import os from AppiumLibrary.keywords import * from AppiumLibrary.version import VERSION diff --git a/AppiumLibrary/keywords/__init__.py b/AppiumLibrary/keywords/__init__.py index f3618edc..6a1ec38c 100644 --- a/AppiumLibrary/keywords/__init__.py +++ b/AppiumLibrary/keywords/__init__.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - from ._logging import _LoggingKeywords from ._runonfailure import _RunOnFailureKeywords from ._element import _ElementKeywords diff --git a/AppiumLibrary/keywords/_android_utils.py b/AppiumLibrary/keywords/_android_utils.py index 1750ba44..7cd4009f 100644 --- a/AppiumLibrary/keywords/_android_utils.py +++ b/AppiumLibrary/keywords/_android_utils.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- import base64 from .keywordgroup import KeywordGroup diff --git a/AppiumLibrary/keywords/_applicationmanagement.py b/AppiumLibrary/keywords/_applicationmanagement.py index 0bb4d0f0..6b77fcdf 100644 --- a/AppiumLibrary/keywords/_applicationmanagement.py +++ b/AppiumLibrary/keywords/_applicationmanagement.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - import os import robot import inspect diff --git a/AppiumLibrary/keywords/_element.py b/AppiumLibrary/keywords/_element.py index f627adef..aabe9d2a 100644 --- a/AppiumLibrary/keywords/_element.py +++ b/AppiumLibrary/keywords/_element.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - from AppiumLibrary.locators import ElementFinder from appium.webdriver.common.appiumby import AppiumBy from .keywordgroup import KeywordGroup diff --git a/AppiumLibrary/keywords/_keyevent.py b/AppiumLibrary/keywords/_keyevent.py index 8e02a913..975b0158 100644 --- a/AppiumLibrary/keywords/_keyevent.py +++ b/AppiumLibrary/keywords/_keyevent.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - from .keywordgroup import KeywordGroup diff --git a/AppiumLibrary/keywords/_logging.py b/AppiumLibrary/keywords/_logging.py index 09bd0d94..45e56132 100644 --- a/AppiumLibrary/keywords/_logging.py +++ b/AppiumLibrary/keywords/_logging.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - import os from robot.libraries.BuiltIn import BuiltIn from robot.libraries.BuiltIn import RobotNotRunningError diff --git a/AppiumLibrary/keywords/_runonfailure.py b/AppiumLibrary/keywords/_runonfailure.py index da75b2a6..b2e2e796 100644 --- a/AppiumLibrary/keywords/_runonfailure.py +++ b/AppiumLibrary/keywords/_runonfailure.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - from robot.libraries import BuiltIn from .keywordgroup import KeywordGroup @@ -36,8 +34,8 @@ def register_keyword_to_run_on_failure(self, keyword): | ${previous kw}= | Register Keyword To Run On Failure | Nothing | # Disables run-on-failure functionality and stores the previous kw name in a variable. | | Register Keyword To Run On Failure | ${previous kw} | # Restore to the previous keyword. | - This run-on-failure functionality only works when running tests on Python/Jython 2.4 - or newer and it does not work on IronPython at all. + This run-on-failure functionality only works when running tests on Python 3.9 + or newer. """ old_keyword = self._run_on_failure_keyword old_keyword_text = old_keyword if old_keyword is not None else "Nothing" diff --git a/AppiumLibrary/keywords/_screenrecord.py b/AppiumLibrary/keywords/_screenrecord.py index 75d5cd88..cb7e01ae 100644 --- a/AppiumLibrary/keywords/_screenrecord.py +++ b/AppiumLibrary/keywords/_screenrecord.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - import os import robot import base64 diff --git a/AppiumLibrary/keywords/_screenshot.py b/AppiumLibrary/keywords/_screenshot.py index 3f1c363b..5d6fe790 100644 --- a/AppiumLibrary/keywords/_screenshot.py +++ b/AppiumLibrary/keywords/_screenshot.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - import os import robot from .keywordgroup import KeywordGroup diff --git a/AppiumLibrary/keywords/_touch.py b/AppiumLibrary/keywords/_touch.py index 3c744dcf..59cc7312 100644 --- a/AppiumLibrary/keywords/_touch.py +++ b/AppiumLibrary/keywords/_touch.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - import time from appium.webdriver.extensions.action_helpers import ActionHelpers diff --git a/AppiumLibrary/keywords/keywordgroup.py b/AppiumLibrary/keywords/keywordgroup.py index b6b166fb..19905eb9 100644 --- a/AppiumLibrary/keywords/keywordgroup.py +++ b/AppiumLibrary/keywords/keywordgroup.py @@ -1,14 +1,7 @@ -# -*- coding: utf-8 -*- - -import sys import inspect -from six import with_metaclass -try: - from decorator import decorator -except SyntaxError: # decorator module requires Python/Jython 2.4+ - decorator = None -if sys.platform == 'cli': - decorator = None # decorator module doesn't work with IronPython 2.6 + +from decorator import decorator + def _run_on_failure_decorator(method, *args, **kwargs): try: @@ -22,12 +15,11 @@ def _run_on_failure_decorator(method, *args, **kwargs): class KeywordGroupMetaClass(type): def __new__(cls, clsname, bases, dict): - if decorator: - for name, method in dict.items(): - if not name.startswith('_') and inspect.isroutine(method): - dict[name] = decorator(_run_on_failure_decorator, method) + for name, method in dict.items(): + if not name.startswith('_') and inspect.isroutine(method): + dict[name] = decorator(_run_on_failure_decorator, method) return type.__new__(cls, clsname, bases, dict) -class KeywordGroup(with_metaclass(KeywordGroupMetaClass, object)): +class KeywordGroup(object, metaclass=KeywordGroupMetaClass): pass diff --git a/AppiumLibrary/locators/__init__.py b/AppiumLibrary/locators/__init__.py index 6542a373..84c01e91 100644 --- a/AppiumLibrary/locators/__init__.py +++ b/AppiumLibrary/locators/__init__.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - from .elementfinder import ElementFinder __all__ = [ diff --git a/AppiumLibrary/locators/elementfinder.py b/AppiumLibrary/locators/elementfinder.py index 16df8c1a..7288ddc7 100644 --- a/AppiumLibrary/locators/elementfinder.py +++ b/AppiumLibrary/locators/elementfinder.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- - from AppiumLibrary import utils from appium.webdriver.common.appiumby import AppiumBy from robot.api import logger diff --git a/AppiumLibrary/utils/__init__.py b/AppiumLibrary/utils/__init__.py index 966b209e..8b0e410c 100644 --- a/AppiumLibrary/utils/__init__.py +++ b/AppiumLibrary/utils/__init__.py @@ -1,12 +1,8 @@ -import six - from .applicationcache import ApplicationCache -if six.PY3: - unicode = str def escape_xpath_value(value): - value = unicode(value) + value = str(value) if '"' in value and '\'' in value: parts_wo_apos = value.split('\'') return "concat('%s')" % "', \"'\", '".join(parts_wo_apos) diff --git a/AppiumLibrary/version.py b/AppiumLibrary/version.py index 35e6a3be..c5396cb9 100644 --- a/AppiumLibrary/version.py +++ b/AppiumLibrary/version.py @@ -1,2 +1 @@ -# -*- coding: utf-8 -*- VERSION = '3.2.1' diff --git a/pyproject.toml b/pyproject.toml index 7052d42b..8ec2698b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,7 +11,6 @@ dependencies = [ "docutils >= 0.8.1", "selenium >=4.26.0", "Appium-Python-Client >= 5.1.1", - "six >= 1.10.0", "geopy >= 2.4.1", ] description = "Robot Framework Mobile app testing library for Appium Client Android & iOS & Web" diff --git a/test_require.txt b/test_require.txt index 423f7cfa..4bf84de3 100644 --- a/test_require.txt +++ b/test_require.txt @@ -1,5 +1,4 @@ mock >= 2.0.0 pytest-cov >= 2.5.1 pytest-xdist >= 1.16.0 -pytest >= 3.1.0 -six >= 1.10.0 \ No newline at end of file +pytest >= 3.1.0 \ No newline at end of file diff --git a/tests/keywords/test_androidUtils.py b/tests/keywords/test_androidUtils.py index 851dc6d0..6cd39a7c 100644 --- a/tests/keywords/test_androidUtils.py +++ b/tests/keywords/test_androidUtils.py @@ -18,11 +18,6 @@ class AndroidUtilsTests(unittest.TestCase): - import six - if six.PY2: - assertRegex = unittest.TestCase.assertRegexpMatches - assertRaisesRegex = unittest.TestCase.assertRaisesRegexp - am = None au = None diff --git a/tests/keywords/test_multipleAppiumConnections.py b/tests/keywords/test_multipleAppiumConnections.py index 87200da5..cd46ce3d 100644 --- a/tests/keywords/test_multipleAppiumConnections.py +++ b/tests/keywords/test_multipleAppiumConnections.py @@ -15,12 +15,7 @@ logger.addHandler(stream_handler) class MultipleAppiumConnectionTests(unittest.TestCase): - import six - if six.PY2: - assertRegex = unittest.TestCase.assertRegexpMatches - assertRaisesRegex = unittest.TestCase.assertRaisesRegexp - - am=None + am = None def setUp(self): #appium.webdriver.Remote = mock.Mock() diff --git a/tests/utils/test_applicationcache.py b/tests/utils/test_applicationcache.py index 9c59bd4c..fe62f2c2 100644 --- a/tests/utils/test_applicationcache.py +++ b/tests/utils/test_applicationcache.py @@ -4,11 +4,6 @@ class ApplicationCacheTests(unittest.TestCase): - import six - if six.PY2: - assertRegex = unittest.TestCase.assertRegexpMatches - assertRaisesRegex = unittest.TestCase.assertRaisesRegexp - def test_no_current_message(self): cache = ApplicationCache() with self.assertRaisesRegex(RuntimeError, "No current application"):