mirror of
https://github.com/status-im/status-react.git
synced 2025-01-11 03:26:31 +00:00
Upgrade to pytest 5.3.1
Signed-off-by: Jakub Sokołowski <jakub@status.im>
This commit is contained in:
parent
81fecd7a16
commit
577e699405
@ -2,8 +2,7 @@ aiohttp==2.2.3
|
|||||||
allpairspy==2.3.0
|
allpairspy==2.3.0
|
||||||
apipkg==1.4
|
apipkg==1.4
|
||||||
Appium-Python-Client==0.26
|
Appium-Python-Client==0.26
|
||||||
async-timeout==1.2.1
|
async-timeout==3.0.1
|
||||||
asyncio==3.4.3
|
|
||||||
certifi==2017.7.27.1
|
certifi==2017.7.27.1
|
||||||
chardet==3.0.4
|
chardet==3.0.4
|
||||||
cycler==0.10.0
|
cycler==0.10.0
|
||||||
@ -30,9 +29,9 @@ pycryptodome==3.6.1
|
|||||||
pyethash==0.1.27
|
pyethash==0.1.27
|
||||||
pyparsing==2.2.0
|
pyparsing==2.2.0
|
||||||
pysha3==1.0.2
|
pysha3==1.0.2
|
||||||
pytest==4.0.2
|
pytest==5.3.1
|
||||||
pytest-forked==0.2
|
pytest-forked==1.1.3
|
||||||
pytest-xdist==1.22.2
|
pytest-xdist==1.30.0
|
||||||
python-dateutil==2.7.3
|
python-dateutil==2.7.3
|
||||||
pytz==2018.4
|
pytz==2018.4
|
||||||
PyYAML==4.2b4
|
PyYAML==4.2b4
|
||||||
@ -46,6 +45,6 @@ six==1.10.0
|
|||||||
toolz==0.9.0
|
toolz==0.9.0
|
||||||
urllib3==1.24.2
|
urllib3==1.24.2
|
||||||
yarl==0.12.0
|
yarl==0.12.0
|
||||||
zbarlight==1.2
|
zbarlight==2.3
|
||||||
docker
|
docker
|
||||||
influxdb
|
influxdb
|
||||||
|
@ -6,12 +6,13 @@ import requests
|
|||||||
import time
|
import time
|
||||||
from json import JSONDecodeError
|
from json import JSONDecodeError
|
||||||
from decimal import Decimal
|
from decimal import Decimal
|
||||||
|
import tests
|
||||||
|
|
||||||
|
|
||||||
class NetworkApi(object):
|
class NetworkApi(object):
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.network_url = 'http://api-%s.etherscan.io/api?' % pytest.config.getoption('network')
|
self.network_url = 'http://api-%s.etherscan.io/api?' % tests.pytest_config_global['network']
|
||||||
self.faucet_url = 'https://faucet-ropsten.status.im/donate'
|
self.faucet_url = 'https://faucet-ropsten.status.im/donate'
|
||||||
self.faucet_backup_url = 'https://faucet.ropsten.be/donate'
|
self.faucet_backup_url = 'https://faucet.ropsten.be/donate'
|
||||||
self.headers = {
|
self.headers = {
|
||||||
|
@ -23,7 +23,7 @@ def get_current_time():
|
|||||||
def debug(text: str):
|
def debug(text: str):
|
||||||
logging.debug(text)
|
logging.debug(text)
|
||||||
|
|
||||||
|
pytest_config_global = dict()
|
||||||
test_suite_data = TestSuiteData()
|
test_suite_data = TestSuiteData()
|
||||||
appium_container = AppiumContainer()
|
appium_container = AppiumContainer()
|
||||||
|
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
import pytest
|
|
||||||
import re
|
import re
|
||||||
|
|
||||||
from tests import marks, bootnode_address, mailserver_address, camera_access_error_text, \
|
from tests import marks, bootnode_address, mailserver_address, camera_access_error_text, \
|
||||||
@ -7,6 +6,7 @@ from tests import marks, bootnode_address, mailserver_address, camera_access_err
|
|||||||
from tests.base_test_case import SingleDeviceTestCase, MultipleDeviceTestCase
|
from tests.base_test_case import SingleDeviceTestCase, MultipleDeviceTestCase
|
||||||
from tests.users import transaction_senders, basic_user, ens_user
|
from tests.users import transaction_senders, basic_user, ens_user
|
||||||
from views.sign_in_view import SignInView
|
from views.sign_in_view import SignInView
|
||||||
|
from tests import pytest_config_global
|
||||||
|
|
||||||
|
|
||||||
@marks.all
|
@marks.all
|
||||||
@ -372,7 +372,7 @@ class TestProfileSingleDevice(SingleDeviceTestCase):
|
|||||||
sign_in_view.create_user()
|
sign_in_view.create_user()
|
||||||
profile_view = sign_in_view.profile_button.click()
|
profile_view = sign_in_view.profile_button.click()
|
||||||
profile_view.advanced_button.click()
|
profile_view.advanced_button.click()
|
||||||
if 'release' in str(pytest.config.getoption('apk')):
|
if 'release' in str(pytest_config_global['apk']):
|
||||||
# TODO: should be edited after showing some text in setting when log in disabled
|
# TODO: should be edited after showing some text in setting when log in disabled
|
||||||
if profile_view.log_level_setting.is_element_displayed():
|
if profile_view.log_level_setting.is_element_displayed():
|
||||||
self.errors.append('Log is not disabled')
|
self.errors.append('Log is not disabled')
|
||||||
@ -495,9 +495,9 @@ class TestProfileSingleDevice(SingleDeviceTestCase):
|
|||||||
profile_view.about_button.click()
|
profile_view.about_button.click()
|
||||||
app_version = profile_view.app_version_text.text
|
app_version = profile_view.app_version_text.text
|
||||||
node_version = profile_view.node_version_text.text
|
node_version = profile_view.node_version_text.text
|
||||||
if not re.search("\d{1}[.]\d{1,2}[.]\d{1,2}\s[(]\d*[)]", app_version):
|
if not re.search(r'\d{1}[.]\d{1,2}[.]\d{1,2}\s[(]\d*[)]', app_version):
|
||||||
self.errors.append("App version %s didn't match expected format" % app_version)
|
self.errors.append("App version %s didn't match expected format" % app_version)
|
||||||
if not re.search("StatusIM\/v.*\/android-\d{3}\/go\d{1}[.]\d{1,2}[.]\d{1,2}", node_version):
|
if not re.search(r'StatusIM\/v.*\/android-\d{3}\/go\d{1}[.]\d{1,2}[.]\d{1,2}', node_version):
|
||||||
self.errors.append("Node version %s didn't match expected format" % node_version)
|
self.errors.append("Node version %s didn't match expected format" % node_version)
|
||||||
profile_view.app_version_text.click()
|
profile_view.app_version_text.click()
|
||||||
profile_view.back_button.click()
|
profile_view.back_button.click()
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
import time
|
import time
|
||||||
|
|
||||||
import emoji
|
import emoji
|
||||||
import pytest
|
|
||||||
import random
|
import random
|
||||||
import string
|
import string
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import pytest
|
import pytest
|
||||||
from tests import marks
|
from tests import marks, pytest_config_global
|
||||||
from tests.base_test_case import SingleDeviceTestCase
|
from tests.base_test_case import SingleDeviceTestCase
|
||||||
from views.sign_in_view import SignInView
|
from views.sign_in_view import SignInView
|
||||||
|
|
||||||
@ -8,7 +8,7 @@ class TestUpgradeApplication(SingleDeviceTestCase):
|
|||||||
|
|
||||||
def setup_method(self, method, **kwargs):
|
def setup_method(self, method, **kwargs):
|
||||||
super(TestUpgradeApplication, self).setup_method(method, app='sauce-storage:app-release.apk')
|
super(TestUpgradeApplication, self).setup_method(method, app='sauce-storage:app-release.apk')
|
||||||
self.apk_name = ([i for i in [i for i in pytest.config.getoption('apk').split('/') if '.apk' in i]])[0]
|
self.apk_name = ([i for i in [i for i in pytest_config_global['apk'].split('/') if '.apk' in i]])[0]
|
||||||
|
|
||||||
@marks.testrail_id(5713)
|
@marks.testrail_id(5713)
|
||||||
@marks.upgrade
|
@marks.upgrade
|
||||||
|
@ -15,7 +15,7 @@ from selenium.common.exceptions import WebDriverException
|
|||||||
from support.api.network_api import NetworkApi
|
from support.api.network_api import NetworkApi
|
||||||
from support.github_report import GithubHtmlReport
|
from support.github_report import GithubHtmlReport
|
||||||
from support.message_reliability_report import create_one_to_one_chat_report, create_public_chat_report
|
from support.message_reliability_report import create_one_to_one_chat_report, create_public_chat_report
|
||||||
from tests import test_suite_data, start_threads, appium_container
|
from tests import test_suite_data, start_threads, appium_container, pytest_config_global
|
||||||
|
|
||||||
class AbstractTestCase:
|
class AbstractTestCase:
|
||||||
__metaclass__ = ABCMeta
|
__metaclass__ = ABCMeta
|
||||||
@ -39,7 +39,7 @@ class AbstractTestCase:
|
|||||||
def print_sauce_lab_info(self, driver):
|
def print_sauce_lab_info(self, driver):
|
||||||
sys.stdout = sys.stderr
|
sys.stdout = sys.stderr
|
||||||
print("SauceOnDemandSessionID=%s job-name=%s" % (driver.session_id,
|
print("SauceOnDemandSessionID=%s job-name=%s" % (driver.session_id,
|
||||||
pytest.config.getoption('build')))
|
pytest_config_global['build']))
|
||||||
|
|
||||||
def add_local_devices_to_capabilities(self):
|
def add_local_devices_to_capabilities(self):
|
||||||
updated_capabilities = list()
|
updated_capabilities = list()
|
||||||
@ -57,7 +57,7 @@ class AbstractTestCase:
|
|||||||
desired_caps = dict()
|
desired_caps = dict()
|
||||||
desired_caps['app'] = 'sauce-storage:' + test_suite_data.apk_name
|
desired_caps['app'] = 'sauce-storage:' + test_suite_data.apk_name
|
||||||
|
|
||||||
desired_caps['build'] = pytest.config.getoption('build')
|
desired_caps['build'] = pytest_config_global['build']
|
||||||
desired_caps['name'] = test_suite_data.current_test.name
|
desired_caps['name'] = test_suite_data.current_test.name
|
||||||
desired_caps['platformName'] = 'Android'
|
desired_caps['platformName'] = 'Android'
|
||||||
desired_caps['appiumVersion'] = '1.9.1'
|
desired_caps['appiumVersion'] = '1.9.1'
|
||||||
@ -82,16 +82,16 @@ class AbstractTestCase:
|
|||||||
@property
|
@property
|
||||||
def capabilities_local(self):
|
def capabilities_local(self):
|
||||||
desired_caps = dict()
|
desired_caps = dict()
|
||||||
if pytest.config.getoption('docker'):
|
if pytest_config_global['docker']:
|
||||||
# apk is in shared volume directory
|
# apk is in shared volume directory
|
||||||
apk = '/root/shared_volume/%s' % pytest.config.getoption('apk')
|
apk = '/root/shared_volume/%s' % pytest_config_global['apk']
|
||||||
else:
|
else:
|
||||||
apk = pytest.config.getoption('apk')
|
apk = pytest_config_global['apk']
|
||||||
desired_caps['app'] = apk
|
desired_caps['app'] = apk
|
||||||
desired_caps['deviceName'] = 'nexus_5'
|
desired_caps['deviceName'] = 'nexus_5'
|
||||||
desired_caps['platformName'] = 'Android'
|
desired_caps['platformName'] = 'Android'
|
||||||
desired_caps['appiumVersion'] = '1.9.1'
|
desired_caps['appiumVersion'] = '1.9.1'
|
||||||
desired_caps['platformVersion'] = pytest.config.getoption('platform_version')
|
desired_caps['platformVersion'] = pytest_config_global['platform_version']
|
||||||
desired_caps['newCommandTimeout'] = 600
|
desired_caps['newCommandTimeout'] = 600
|
||||||
desired_caps['fullReset'] = False
|
desired_caps['fullReset'] = False
|
||||||
desired_caps['unicodeKeyboard'] = True
|
desired_caps['unicodeKeyboard'] = True
|
||||||
@ -109,7 +109,7 @@ class AbstractTestCase:
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def environment(self):
|
def environment(self):
|
||||||
return pytest.config.getoption('env')
|
return pytest_config_global['env']
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def implicitly_wait(self):
|
def implicitly_wait(self):
|
||||||
@ -164,9 +164,9 @@ class Errors(object):
|
|||||||
class SingleDeviceTestCase(AbstractTestCase):
|
class SingleDeviceTestCase(AbstractTestCase):
|
||||||
|
|
||||||
def setup_method(self, method, **kwargs):
|
def setup_method(self, method, **kwargs):
|
||||||
if pytest.config.getoption('docker'):
|
if pytest_config_global['docker']:
|
||||||
appium_container.start_appium_container(pytest.config.getoption('docker_shared_volume'))
|
appium_container.start_appium_container(pytest_config_global['docker_shared_volume'])
|
||||||
appium_container.connect_device(pytest.config.getoption('device_ip'))
|
appium_container.connect_device(pytest_config_global['device_ip'])
|
||||||
|
|
||||||
(executor, capabilities) = (self.executor_sauce_lab, self.capabilities_sauce_lab) if \
|
(executor, capabilities) = (self.executor_sauce_lab, self.capabilities_sauce_lab) if \
|
||||||
self.environment == 'sauce' else (self.executor_local, self.capabilities_local)
|
self.environment == 'sauce' else (self.executor_local, self.capabilities_local)
|
||||||
@ -177,7 +177,7 @@ class SingleDeviceTestCase(AbstractTestCase):
|
|||||||
self.driver.implicitly_wait(self.implicitly_wait)
|
self.driver.implicitly_wait(self.implicitly_wait)
|
||||||
self.errors = Errors()
|
self.errors = Errors()
|
||||||
|
|
||||||
if pytest.config.getoption('docker'):
|
if pytest_config_global['docker']:
|
||||||
appium_container.reset_battery_stats()
|
appium_container.reset_battery_stats()
|
||||||
|
|
||||||
def teardown_method(self, method):
|
def teardown_method(self, method):
|
||||||
@ -186,7 +186,7 @@ class SingleDeviceTestCase(AbstractTestCase):
|
|||||||
try:
|
try:
|
||||||
self.add_alert_text_to_report(self.driver)
|
self.add_alert_text_to_report(self.driver)
|
||||||
self.driver.quit()
|
self.driver.quit()
|
||||||
if pytest.config.getoption('docker'):
|
if pytest_config_global['docker']:
|
||||||
appium_container.stop_container()
|
appium_container.stop_container()
|
||||||
except (WebDriverException, AttributeError):
|
except (WebDriverException, AttributeError):
|
||||||
pass
|
pass
|
||||||
@ -255,7 +255,7 @@ class SauceMultipleDeviceTestCase(AbstractTestCase):
|
|||||||
cls.loop.close()
|
cls.loop.close()
|
||||||
|
|
||||||
|
|
||||||
if pytest.config.getoption('env') == 'local':
|
if pytest_config_global['env'] == 'local':
|
||||||
MultipleDeviceTestCase = LocalMultipleDeviceTestCase
|
MultipleDeviceTestCase = LocalMultipleDeviceTestCase
|
||||||
else:
|
else:
|
||||||
MultipleDeviceTestCase = SauceMultipleDeviceTestCase
|
MultipleDeviceTestCase = SauceMultipleDeviceTestCase
|
||||||
|
@ -14,6 +14,7 @@ from support.api.network_api import NetworkApi
|
|||||||
from support.github_report import GithubHtmlReport
|
from support.github_report import GithubHtmlReport
|
||||||
from support.testrail_report import TestrailReport
|
from support.testrail_report import TestrailReport
|
||||||
from tests.users import transaction_senders
|
from tests.users import transaction_senders
|
||||||
|
import tests
|
||||||
|
|
||||||
sauce_username = environ.get('SAUCE_USERNAME')
|
sauce_username = environ.get('SAUCE_USERNAME')
|
||||||
sauce_access_key = environ.get('SAUCE_ACCESS_KEY')
|
sauce_access_key = environ.get('SAUCE_ACCESS_KEY')
|
||||||
@ -142,8 +143,8 @@ def is_uploaded():
|
|||||||
|
|
||||||
|
|
||||||
def pytest_configure(config):
|
def pytest_configure(config):
|
||||||
|
tests.pytest_config_global = vars(config.option)
|
||||||
config.addinivalue_line("markers", "testrail_id(name): empty")
|
config.addinivalue_line("markers", "testrail_id(name): empty")
|
||||||
|
|
||||||
if config.getoption('log_steps'):
|
if config.getoption('log_steps'):
|
||||||
import logging
|
import logging
|
||||||
logging.basicConfig(level=logging.INFO)
|
logging.basicConfig(level=logging.INFO)
|
||||||
@ -221,12 +222,12 @@ def pytest_runtest_makereport(item, call):
|
|||||||
current_test.testruns[-1].error = error
|
current_test.testruns[-1].error = error
|
||||||
if is_sauce_env:
|
if is_sauce_env:
|
||||||
update_sauce_jobs(current_test.name, current_test.testruns[-1].jobs, report.passed)
|
update_sauce_jobs(current_test.name, current_test.testruns[-1].jobs, report.passed)
|
||||||
if pytest.config.getoption('docker'):
|
if item.config.getoption('docker'):
|
||||||
device_stats = appium_container.get_device_stats()
|
device_stats = appium_container.get_device_stats()
|
||||||
if pytest.config.getoption('bugreport'):
|
if item.config.getoption('bugreport'):
|
||||||
appium_container.generate_bugreport(item.name)
|
appium_container.generate_bugreport(item.name)
|
||||||
|
|
||||||
build_name = pytest.config.getoption('apk')
|
build_name = item.config.getoption('apk')
|
||||||
# Find type of tests that are run on the device
|
# Find type of tests that are run on the device
|
||||||
if 'battery_consumption' in item.keywords._markers:
|
if 'battery_consumption' in item.keywords._markers:
|
||||||
test_group = 'battery_consumption'
|
test_group = 'battery_consumption'
|
||||||
|
@ -1,14 +1,15 @@
|
|||||||
import time
|
import time
|
||||||
import pytest
|
import pytest
|
||||||
import numpy
|
import numpy
|
||||||
|
from tests import pytest_config_global
|
||||||
from tests.base_test_case import SingleDeviceTestCase
|
from tests.base_test_case import SingleDeviceTestCase
|
||||||
from random import randint
|
from random import randint
|
||||||
from views.sign_in_view import SignInView
|
from views.sign_in_view import SignInView
|
||||||
|
|
||||||
running_time = int(pytest.config.getoption('running_time'))
|
running_time = int(pytest_config_global['running_time'])
|
||||||
messages_number = int(pytest.config.getoption('messages_number'))
|
messages_number = int(pytest_config_global['messages_number'])
|
||||||
stop = int(time.time()) + running_time
|
stop = int(time.time()) + running_time
|
||||||
public_keys = pytest.config.getoption('public_keys').split()
|
public_keys = pytest_config_global['public_keys'].split()
|
||||||
repeats = 24 / len(public_keys) if public_keys else 0
|
repeats = 24 / len(public_keys) if public_keys else 0
|
||||||
|
|
||||||
|
|
||||||
@ -36,11 +37,11 @@ class TestChatBot(SingleDeviceTestCase):
|
|||||||
chat.chat_message_input.send_keys(message % (counter, key))
|
chat.chat_message_input.send_keys(message % (counter, key))
|
||||||
chat.send_message_button.click()
|
chat.send_message_button.click()
|
||||||
|
|
||||||
@pytest.mark.parametrize('number', list(range(int(pytest.config.getoption('device_number')))))
|
@pytest.mark.parametrize('number', list(range(int(pytest_config_global['device_number']))))
|
||||||
def test_chatbot_public_chat(self, number):
|
def test_chatbot_public_chat(self, number):
|
||||||
sign_in = SignInView(self.driver)
|
sign_in = SignInView(self.driver)
|
||||||
home = sign_in.create_user()
|
home = sign_in.create_user()
|
||||||
chat_name = pytest.config.getoption('chat_name')
|
chat_name = pytest_config_global['chat_name']
|
||||||
chat = home.join_public_chat(chat_name)
|
chat = home.join_public_chat(chat_name)
|
||||||
counter = 0
|
counter = 0
|
||||||
while counter <= messages_number / 24:
|
while counter <= messages_number / 24:
|
||||||
|
@ -610,7 +610,7 @@ class BaseView(object):
|
|||||||
logcat = self.logcat
|
logcat = self.logcat
|
||||||
items_in_logcat = list()
|
items_in_logcat = list()
|
||||||
for key, value in kwargs.items():
|
for key, value in kwargs.items():
|
||||||
if re.findall('\W%s$|\W%s\W' % (value, value), logcat):
|
if re.findall(r'\W%s$|\W%s\W' % (value, value), logcat):
|
||||||
items_in_logcat.append('%s in logcat!!!' % key.capitalize())
|
items_in_logcat.append('%s in logcat!!!' % key.capitalize())
|
||||||
return items_in_logcat
|
return items_in_logcat
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user