def get_initial(self): """Return the current status""" return { 'hostname': config.get_hostname(), 'domainname': config.get_domainname(), 'homepage': config.get_home_page(), 'advanced_mode': config.get_advanced_mode(), }
def test_homepage_field(): """Test homepage changes. Test Cases: 1) FreedomBox Homepage (default), 2) Apache default, 3) A user's website of an... 3.1) unexisting user 3.2) existing user without a page 3.3) existing user page. 4) A FreedomBox App. 4.1) unknown app 4.2) uninstalled app 4.3) disabled app 4.4) enabled app Note: If run on a pristine unconfigured FreedomBox, this test will leave the homepage default-configured. (Imperfect cleanup in such case). Note: We take fbx as website user because of our testing container. Pending: - Specific test cases to distinguish 4.1,2,3. Currently they share the same test case. - Search for another valid user apart from fbx. """ user = '******' uws_directory = uws_directory_of_user(user) uws_url = uws_url_of_user(user) uws_scid = home_page_url2scid(uws_url) default_home_page = 'plinth' original_home_page = get_home_page() or default_home_page # Check test's preconditions: if original_home_page not in (default_home_page, None): reason = "Unexpected home page {}.".format(original_home_page) pytest.skip(reason) if os.path.exists(uws_directory): # Don't blindly remove a pre-existing directory. Just skip the test. reason = "UWS directory {} exists already.".format(uws_directory) pytest.skip(reason) # AC: invalid changes fall back to default: for scid in ('uws-unexisting', uws_scid, 'missing_app'): change_home_page(scid) assert get_home_page() == default_home_page # AC: valid changes actually happen: try: os.mkdir(uws_directory) except Exception: reason = "Needs access to ~/ directory. " \ + "CI sandboxed workspace doesn't provide it." pytest.skip(reason) for scid in ('b', 'a', uws_scid, 'apache-default', 'plinth'): change_home_page(scid) assert get_home_page() == scid # cleanup: change_home_page(original_home_page) os.rmdir(uws_directory) assert get_home_page() == original_home_page