FreedomBox/plinth/modules/rssbridge/tests/test_functional.py
James Valleroy c72225de40
rssbridge: Fix flake8 errors
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2022-07-17 18:57:13 -07:00

54 lines
2.0 KiB
Python

# SPDX-License-Identifier: AGPL-3.0-or-later
"""
Functional, browser based tests for RSS-Bridge app.
"""
import json
import subprocess
from plinth.tests import functional
class TestRSSBridgeApp(functional.BaseAppTests):
app_name = 'rssbridge'
has_service = False
has_web = True
def test_active_bridges(self, session_browser):
"""Check that bridges are active."""
functional.app_enable(session_browser, self.app_name)
functional.visit(session_browser, '/rss-bridge/')
assert session_browser.find_by_css(
'#bridge-Wikipedia button[type="submit"]')
def test_feed_html(self, session_browser):
"""Check that a feed is properly rendered."""
functional.app_enable(session_browser, self.app_name)
url = '/rss-bridge/?action=display&bridge=Wikipedia&' \
'language=en&subject=tfa&format=Html'
functional.visit(session_browser, url)
assert not session_browser.find_by_css('.exception-message')
assert session_browser.find_by_css('.feeditem')
def test_feed_json(self, session_browser):
"""Check that a feed is properly rendered."""
functional.app_enable(session_browser, self.app_name)
path = '/rss-bridge/?action=display&bridge=Wikipedia&' \
'language=en&subject=tfa&format=Json'
url = functional.config['DEFAULT']['url'] + path
# Unauthorized
result = subprocess.run(['curl', '-k', '--basic', url],
stdout=subprocess.PIPE,
stderr=subprocess.DEVNULL, check=True)
assert '401 Unauthorized' in result.stdout.decode()
# Authorized
username = functional.config['DEFAULT']['username']
password = functional.config['DEFAULT']['password']
result = subprocess.run(
['curl', '-k', '--basic', '--user', f'{username}:{password}', url],
stdout=subprocess.PIPE, stderr=subprocess.DEVNULL, check=True)
feed = json.loads(result.stdout)
assert len(feed['items'])