예제 #1
0
def _add_to_value(to_param, from_params):
    new_param = to_param
    for from_param in from_params:
        if to_param.key == from_param.key:
            new_param = Parameter(to_param.key,
                                  new_param.values + from_param.values)
    return new_param
예제 #2
0
import pytest

from pibootcmdline.parse import from_str, from_file, Parameter
from pibootcmdline.write import to_str, to_file

_cmdline_rootwait = 'rootwait'

_cmdline_keyvalue = 'console=tty1'

_mixed_cmdline_loaded = [
    Parameter('console', ['tty1']),
    Parameter('rootwait', [])
]

_cmdline_complex = 'dwc_otg.lpm_enable=0 console=tty1 root=PARTUUID=c0ff14d9-02 rootfstype=ext4 elevator=deadline ' \
                   'fsck.repair=yes rootwait modules-load=dwc2,g_ether'


def test_load_and_store_keyvalue():
    assert to_str(from_str(_cmdline_keyvalue)) == _cmdline_keyvalue


def test_load_and_store_rootwait():
    assert to_str(from_str(_cmdline_rootwait)) == _cmdline_rootwait


def test_load_and_complex():
    assert to_str(from_str(_cmdline_complex)) == _cmdline_complex


def test_store_file(empty_file):
예제 #3
0
def test_add_simple_parameter():
    assert add_parameters([], 'rootwait') == [Parameter('rootwait', [])]
예제 #4
0
def test_add_to_empty_cmdline():
    assert add_to_value(
        ([]),
        'modules-load=g_ether') == [Parameter('modules-load', ['g_ether'])]
예제 #5
0
def test_add_first_value():
    assert add_to_value(([Parameter('modules-load', [])]), 'modules-load=g_ether') == \
           [Parameter('modules-load', ['g_ether'])]
예제 #6
0
def test_add_to_value():
    assert add_to_value([Parameter('modules-load', ['dwc2'])], 'modules-load=g_ether') == \
           [Parameter('modules-load', ['dwc2', 'g_ether'])]
예제 #7
0
def test_add_keyval_parameter():
    assert add_parameters([Parameter('foo', ['bar'])], 'foo=moo') == \
           [Parameter('foo', ['bar']), Parameter('foo', ['moo'])]
예제 #8
0
def test_from_str_list_value():
    assert from_str(_cmdline_list_value) == [
        Parameter('modules-load', ['dwc2', 'g_ether'])
    ]
예제 #9
0
def test_from_str_multi_spaces():
    assert from_str(_cmdline_multi_spaces) == [
        Parameter('foo', ['42']),
        Parameter('bar', [])
    ]
예제 #10
0
def test_from_str_value_equals_char():
    assert from_str(_cmdline_value_with_eq) == [
        Parameter('root', ['PARTUUID=c0ff14d9-02'])
    ]
예제 #11
0
def test_from_str_keyval():
    assert from_str(_cmdline_keyvalue) == [Parameter('console', ['tty1'])]
예제 #12
0
def test_from_str_positional():
    assert from_str(_cmdline_rootwait) == [Parameter('rootwait', [])]