##// END OF EJS Templates
added latest changes
added latest changes

File last commit:

r5647:8333bc7b default
r5658:a109f5ac merge default
Show More
test_routing_links.py
71 lines | 2.3 KiB | text/x-python | PythonLexer
/ rhodecode / tests / config / test_routing_links.py
core: updated copyright to 2024
r5608 # Copyright (C) 2010-2024 RhodeCode GmbH
project: added all source files and assets
r1 #
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License, version 3
# (only), as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# This program is dual-licensed. If you wish to learn more about the
# RhodeCode Enterprise Edition, including its added features, Support services,
# and proprietary license terms, please see https://rhodecode.com/licenses/
routing: switched static redirection links to pyramid....
r1679 import pytest
import requests
project: added all source files and assets
r1 from rhodecode.config import routing_links
tests: fixed test suite for celery adoption
r5607 from rhodecode.tests import console_printer
project: added all source files and assets
r1
routing: switched static redirection links to pyramid....
r1679 def check_connection():
try:
response = requests.get('https://rhodecode.com')
return response.status_code == 200
except Exception as e:
tests: fixed test suite for celery adoption
r5607 console_printer(e)
routing: switched static redirection links to pyramid....
r1679
return False
project: added all source files and assets
r1
routing: switched static redirection links to pyramid....
r1679 connection_available = pytest.mark.skipif(
not check_connection(), reason="No outside internet connection available")
project: added all source files and assets
r1
tests: make the routing link tests retry connections. Reduced test failures
r2139 import requests
fix(encoding for file): fixed support of non utf-8 files in all backends
r5647 from urllib3.util.retry import Retry
tests: make the routing link tests retry connections. Reduced test failures
r2139 from requests.adapters import HTTPAdapter
routing: switched static redirection links to pyramid....
r1679
tests: make the routing link tests retry connections. Reduced test failures
r2139 def requests_retry_session(
retries=3,
backoff_factor=0.3,
status_forcelist=(500, 502, 504),
session=None,
):
session = session or requests.Session()
retry = Retry(
total=retries,
read=retries,
connect=retries,
backoff_factor=backoff_factor,
status_forcelist=status_forcelist,
)
adapter = HTTPAdapter(max_retries=retry)
session.mount('http://', adapter)
session.mount('https://', adapter)
return session
@connection_available
@pytest.mark.parametrize('link_data', routing_links.link_config)
def test_connect_redirection_links(link_data):
response = requests_retry_session().get(link_data['target'])
if link_data['name'] == 'enterprise_license_convert_from_old':
# special case for a page that requires a valid login
assert response.url == 'https://rhodecode.com/login'
else:
assert response.url == link_data['external_target']