mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-01-28 08:03:36 +00:00
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org> Reviewed-by: Veiko Aasa <veiko17@disroot.org>
70 lines
1.8 KiB
Python
70 lines
1.8 KiB
Python
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
"""
|
|
Tests for utilities that edit Deluge configuration files.
|
|
"""
|
|
|
|
import pytest
|
|
|
|
from plinth.modules.deluge.utils import Config
|
|
|
|
test_content = '''{
|
|
"file": 3,
|
|
"format": 1
|
|
}{
|
|
"hosts": [
|
|
[
|
|
"c582deb3aeac48e5ba6f629ec363ea68",
|
|
"127.0.0.1",
|
|
58846,
|
|
"localclient",
|
|
"aa1d33728187a2c2516e7363d6e8fd9178abb6aa"
|
|
]
|
|
]
|
|
}'''
|
|
|
|
|
|
@pytest.fixture(name='deluge_config')
|
|
def fixture_deluge_config(tmp_path):
|
|
"""Fixture to provide a test deluge configuration file."""
|
|
path = tmp_path / 'deluge_config'
|
|
path.write_text(test_content)
|
|
yield path
|
|
|
|
|
|
def test_initialization(tmp_path):
|
|
"""Test object initialization."""
|
|
test_file = tmp_path / 'test_file'
|
|
config = Config(str(test_file))
|
|
assert config.file_name == str(test_file)
|
|
assert config.file == test_file
|
|
assert config._version is None
|
|
assert config.content is None
|
|
assert config._original_content is None
|
|
|
|
|
|
def test_load(deluge_config):
|
|
"""Test loading the configuration file."""
|
|
with Config(str(deluge_config)) as config:
|
|
assert config._version['file'] == 3
|
|
assert config._version['format'] == 1
|
|
assert config.content['hosts'][0][1] == '127.0.0.1'
|
|
|
|
|
|
def test_save(deluge_config):
|
|
"""Test save the configuration file."""
|
|
with Config(str(deluge_config)) as config:
|
|
pass
|
|
|
|
assert deluge_config.read_text() == test_content
|
|
|
|
with Config(str(deluge_config)) as config:
|
|
config.content['hosts'][0][1] = '0.0.0.0'
|
|
|
|
assert deluge_config.read_text() == test_content.replace(
|
|
'127.0.0.1', '0.0.0.0')
|
|
|
|
with Config(str(deluge_config)) as config:
|
|
assert config.content['hosts'][0][1] == '0.0.0.0'
|
|
|
|
assert deluge_config.stat().st_mode & 0o777 == 0o600
|