mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-01-21 07:55:00 +00:00
tor: Use BaseAppTests for functional tests
Signed-off-by: James Valleroy <jvalleroy@mailbox.org> Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
This commit is contained in:
parent
7b90787be3
commit
520feedaca
@ -17,81 +17,69 @@ _TOR_FEATURE_TO_ELEMENT = {
|
||||
pytestmark = [pytest.mark.apps, pytest.mark.tor]
|
||||
|
||||
|
||||
@pytest.fixture(scope='module', autouse=True)
|
||||
def fixture_background(session_browser):
|
||||
"""Login and install the app."""
|
||||
functional.login(session_browser)
|
||||
functional.install(session_browser, 'tor')
|
||||
yield
|
||||
functional.app_disable(session_browser, 'tor')
|
||||
class TestTorApp(functional.BaseAppTests):
|
||||
app_name = 'tor'
|
||||
has_service = True
|
||||
has_web = False
|
||||
# TODO: Investigate why accessing IPv6 sites through Tor fails in
|
||||
# container.
|
||||
check_diagnostics = False
|
||||
|
||||
def test_set_tor_relay_configuration(self, session_browser):
|
||||
"""Test setting Tor relay configuration."""
|
||||
functional.app_enable(session_browser, 'tor')
|
||||
_feature_enable(session_browser, 'relay', should_enable=False)
|
||||
_feature_enable(session_browser, 'relay', should_enable=True)
|
||||
_assert_feature_enabled(session_browser, 'relay', enabled=True)
|
||||
assert 'orport' in _get_relay_ports(session_browser)
|
||||
|
||||
def test_enable_disable(session_browser):
|
||||
"""Test enabling the app."""
|
||||
functional.app_disable(session_browser, 'tor')
|
||||
def test_set_tor_bridge_relay_configuration(self, session_browser):
|
||||
"""Test setting Tor bridge relay configuration."""
|
||||
functional.app_enable(session_browser, 'tor')
|
||||
_feature_enable(session_browser, 'bridge-relay', should_enable=False)
|
||||
_feature_enable(session_browser, 'bridge-relay', should_enable=True)
|
||||
_assert_feature_enabled(session_browser, 'bridge-relay', enabled=True)
|
||||
assert 'obfs3' in _get_relay_ports(session_browser)
|
||||
assert 'obfs4' in _get_relay_ports(session_browser)
|
||||
|
||||
functional.app_enable(session_browser, 'tor')
|
||||
assert functional.service_is_running(session_browser, 'tor')
|
||||
def test_set_tor_hidden_services_configuration(self, session_browser):
|
||||
"""Test setting Tor hidden services configuration."""
|
||||
functional.app_enable(session_browser, 'tor')
|
||||
_feature_enable(session_browser, 'hidden-services',
|
||||
should_enable=False)
|
||||
_feature_enable(session_browser, 'hidden-services', should_enable=True)
|
||||
_assert_feature_enabled(session_browser, 'hidden-services',
|
||||
enabled=True)
|
||||
_assert_hidden_services(session_browser)
|
||||
|
||||
functional.app_disable(session_browser, 'tor')
|
||||
assert functional.service_is_not_running(session_browser, 'tor')
|
||||
def test_set_download_software_packages_over_tor(self, session_browser):
|
||||
"""Test setting download software packages over Tor."""
|
||||
functional.app_enable(session_browser, 'tor')
|
||||
_feature_enable(session_browser, 'software', should_enable=True)
|
||||
_feature_enable(session_browser, 'software', should_enable=False)
|
||||
_assert_feature_enabled(session_browser, 'software', enabled=False)
|
||||
|
||||
# TODO: Test more thoroughly by checking same hidden service is restored
|
||||
# and by actually connecting using Tor.
|
||||
@pytest.mark.backups
|
||||
def test_backup_restore(self, session_browser):
|
||||
"""Test backup and restore of configuration."""
|
||||
functional.app_enable(session_browser, 'tor')
|
||||
_feature_enable(session_browser, 'relay', should_enable=True)
|
||||
_feature_enable(session_browser, 'bridge-relay', should_enable=True)
|
||||
_feature_enable(session_browser, 'hidden-services', should_enable=True)
|
||||
functional.backup_create(session_browser, 'tor', 'test_tor')
|
||||
|
||||
def test_set_tor_relay_configuration(session_browser):
|
||||
"""Test setting Tor relay configuration."""
|
||||
functional.app_enable(session_browser, 'tor')
|
||||
_feature_enable(session_browser, 'relay', should_enable=False)
|
||||
_feature_enable(session_browser, 'relay', should_enable=True)
|
||||
_assert_feature_enabled(session_browser, 'relay', enabled=True)
|
||||
assert 'orport' in _get_relay_ports(session_browser)
|
||||
_feature_enable(session_browser, 'relay', should_enable=False)
|
||||
_feature_enable(session_browser, 'hidden-services',
|
||||
should_enable=False)
|
||||
functional.backup_restore(session_browser, 'tor', 'test_tor')
|
||||
|
||||
|
||||
def test_set_tor_bridge_relay_configuration(session_browser):
|
||||
"""Test setting Tor bridge relay configuration."""
|
||||
functional.app_enable(session_browser, 'tor')
|
||||
_feature_enable(session_browser, 'bridge-relay', should_enable=False)
|
||||
_feature_enable(session_browser, 'bridge-relay', should_enable=True)
|
||||
_assert_feature_enabled(session_browser, 'bridge-relay', enabled=True)
|
||||
assert 'obfs3' in _get_relay_ports(session_browser)
|
||||
assert 'obfs4' in _get_relay_ports(session_browser)
|
||||
|
||||
|
||||
def test_set_tor_hidden_services_configuration(session_browser):
|
||||
"""Test setting Tor hidden services configuration."""
|
||||
functional.app_enable(session_browser, 'tor')
|
||||
_feature_enable(session_browser, 'hidden-services', should_enable=False)
|
||||
_feature_enable(session_browser, 'hidden-services', should_enable=True)
|
||||
_assert_feature_enabled(session_browser, 'hidden-services', enabled=True)
|
||||
_assert_hidden_services(session_browser)
|
||||
|
||||
|
||||
def test_set_download_software_packages_over_tor(session_browser):
|
||||
"""Test setting download software packages over Tor."""
|
||||
functional.app_enable(session_browser, 'tor')
|
||||
_feature_enable(session_browser, 'software', should_enable=True)
|
||||
_feature_enable(session_browser, 'software', should_enable=False)
|
||||
_assert_feature_enabled(session_browser, 'software', enabled=False)
|
||||
|
||||
|
||||
# TODO: Test more thoroughly by checking same hidden service is restored and by
|
||||
# actually connecting using Tor.
|
||||
@pytest.mark.backups
|
||||
def test_backup_restore(session_browser):
|
||||
"""Test backup and restore of configuration."""
|
||||
functional.app_enable(session_browser, 'tor')
|
||||
_feature_enable(session_browser, 'relay', should_enable=True)
|
||||
_feature_enable(session_browser, 'bridge-relay', should_enable=True)
|
||||
_feature_enable(session_browser, 'hidden-services', should_enable=True)
|
||||
functional.backup_create(session_browser, 'tor', 'test_tor')
|
||||
|
||||
_feature_enable(session_browser, 'relay', should_enable=False)
|
||||
_feature_enable(session_browser, 'hidden-services', should_enable=False)
|
||||
functional.backup_restore(session_browser, 'tor', 'test_tor')
|
||||
|
||||
assert functional.service_is_running(session_browser, 'tor')
|
||||
_assert_feature_enabled(session_browser, 'relay', enabled=True)
|
||||
_assert_feature_enabled(session_browser, 'bridge-relay', enabled=True)
|
||||
_assert_feature_enabled(session_browser, 'hidden-services', enabled=True)
|
||||
assert functional.service_is_running(session_browser, 'tor')
|
||||
_assert_feature_enabled(session_browser, 'relay', enabled=True)
|
||||
_assert_feature_enabled(session_browser, 'bridge-relay', enabled=True)
|
||||
_assert_feature_enabled(session_browser, 'hidden-services',
|
||||
enabled=True)
|
||||
|
||||
|
||||
def _feature_enable(browser, feature, should_enable):
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user