File: test_functional.py

package info (click to toggle)
freedombox 26.2
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 82,976 kB
  • sloc: python: 48,504; javascript: 1,736; xml: 481; makefile: 290; sh: 167; php: 32
file content (61 lines) | stat: -rw-r--r-- 1,967 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# SPDX-License-Identifier: AGPL-3.0-or-later
"""
Functional, browser based tests for datetime app.
"""

import pytest
from plinth.tests import functional

pytestmark = [pytest.mark.system, pytest.mark.essential, pytest.mark.datetime]


@pytest.fixture(scope='module', autouse=True)
def fixture_background(session_browser):
    """Login."""
    functional.login(session_browser)


def test_enable_disable(session_browser):
    """Test enabling the app."""
    if functional.app_can_be_disabled(session_browser, 'datetime'):
        functional.app_disable(session_browser, 'datetime')

        functional.app_enable(session_browser, 'datetime')
        assert functional.service_is_running(session_browser, 'datetime')

        functional.app_disable(session_browser, 'datetime')
        assert functional.service_is_not_running(session_browser, 'datetime')

    else:
        pytest.skip('datetime cannot be disabled.')


def test_set_timezone(session_browser):
    """Test setting the timezone."""
    _time_zone_set(session_browser, 'Africa/Abidjan')
    assert _time_zone_get(session_browser) == 'Africa/Abidjan'


@pytest.mark.backups
def test_backup_and_restore(session_browser):
    """Test backup and restore of datetime settings."""
    _time_zone_set(session_browser, 'Africa/Accra')
    functional.backup_create(session_browser, 'datetime', 'test_datetime')

    _time_zone_set(session_browser, 'Africa/Cairo')
    functional.backup_restore(session_browser, 'datetime', 'test_datetime')

    assert _time_zone_get(session_browser) == 'Africa/Accra'


def _time_zone_set(browser, time_zone):
    """Set the system time zone."""
    functional.nav_to_module(browser, 'datetime')
    browser.select('time_zone', time_zone)
    functional.submit(browser, form_class='form-configuration')


def _time_zone_get(browser):
    """Set the system time zone."""
    functional.nav_to_module(browser, 'datetime')
    return browser.find_by_name('time_zone').first.value