mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-01-21 07:55:00 +00:00
- This is to capture stdout and stderr and transmit that from privileged daemon back to the service to be displayed in HTML. Tests: - Unit tests and code checks pass. - Some of the modified actions work as expected. Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org> Reviewed-by: Veiko Aasa <veiko17@disroot.org>
96 lines
3.3 KiB
Python
96 lines
3.3 KiB
Python
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
"""
|
|
Test various upgrade related utilities.
|
|
"""
|
|
|
|
from unittest.mock import patch
|
|
|
|
from .. import utils
|
|
|
|
|
|
def test_get_sources_list_codename(tmp_path):
|
|
"""Test retrieving codename from sources.list file."""
|
|
list1 = '''
|
|
deb http://deb.debian.org/debian bookworm main non-free-firmware
|
|
deb-src http://deb.debian.org/debian bookworm main non-free-firmware
|
|
|
|
deb http://deb.debian.org/debian bookworm-updates main non-free-firmware
|
|
deb-src http://deb.debian.org/debian bookworm-updates main non-free-firmware
|
|
|
|
deb http://security.debian.org/debian-security/ bookworm-security main non-free-firmware
|
|
deb-src http://security.debian.org/debian-security/ bookworm-security main non-free-firmware
|
|
''' # noqa: E501
|
|
|
|
list2 = '''
|
|
deb http://deb.debian.org/debian stable main non-free-firmware
|
|
deb-src http://deb.debian.org/debian stable main non-free-firmware
|
|
|
|
deb http://deb.debian.org/debian bookworm-updates main non-free-firmware
|
|
deb-src http://deb.debian.org/debian bookworm-updates main non-free-firmware
|
|
|
|
deb http://security.debian.org/debian-security/ bookworm-security main non-free-firmware
|
|
deb-src http://security.debian.org/debian-security/ bookworm-security main non-free-firmware
|
|
''' # noqa: E501
|
|
|
|
list3 = '''
|
|
deb http://deb.debian.org/debian unstable main
|
|
deb http://deb.debian.org/debian trixie main
|
|
'''
|
|
list4 = '''
|
|
deb http://deb.debian.org/debian sid main
|
|
deb http://deb.debian.org/debian trixie main
|
|
'''
|
|
list5 = '''
|
|
deb http://deb.debian.org/debian testing main
|
|
deb http://deb.debian.org/debian trixie main
|
|
'''
|
|
|
|
sources_list = tmp_path / 'sources.list'
|
|
module = 'plinth.modules.upgrades.utils'
|
|
with patch(f'{module}.sources_list', sources_list):
|
|
sources_list.write_text(list1)
|
|
assert utils.get_sources_list_codename() == 'bookworm'
|
|
|
|
sources_list.write_text(list2)
|
|
assert utils.get_sources_list_codename() is None
|
|
|
|
sources_list.write_text(list3)
|
|
assert utils.get_sources_list_codename() == 'unstable'
|
|
|
|
sources_list.write_text(list4)
|
|
assert utils.get_sources_list_codename() == 'unstable'
|
|
|
|
sources_list.write_text(list5)
|
|
assert utils.get_sources_list_codename() == 'testing'
|
|
|
|
|
|
@patch('subprocess.run')
|
|
def test_get_current_release(run):
|
|
"""Test that getting current release works."""
|
|
run.return_value.stdout = b'test-release\ntest-codename\n\n'
|
|
assert utils.get_current_release() == ('test-release', 'test-codename')
|
|
|
|
|
|
@patch('plinth.modules.upgrades.utils.get_sources_list_codename')
|
|
def test_is_distribution_unstable(get_sources_list_codename):
|
|
"""Test that checking for unstable distribution works."""
|
|
get_sources_list_codename.return_value = 'unstable'
|
|
assert utils.is_distribution_unstable()
|
|
|
|
get_sources_list_codename.return_value = 'sid'
|
|
assert utils.is_distribution_unstable()
|
|
|
|
get_sources_list_codename.return_value = 'testing'
|
|
assert not utils.is_distribution_unstable()
|
|
|
|
|
|
@patch('plinth.modules.upgrades.utils.get_current_release')
|
|
def test_is_distribution_rolling(get_current_release):
|
|
"""Test that checking for testing/unstable distribution works."""
|
|
for value in ['unstable', 'testing', 'n/a']:
|
|
get_current_release.return_value = (value, None)
|
|
assert utils.is_distribution_rolling()
|
|
|
|
get_current_release.return_value = ('forky', None)
|
|
assert not utils.is_distribution_rolling()
|