Исправлены переменные install.os.audio.available, install.os.audio.selected

Доработан grep
master
parent 66911accfe
commit 3ed36c49ff

@ -1493,7 +1493,7 @@ class CalculateExtension(Extension):
'''
fname = self.get_full_filepath(fname)
try:
reg = re.compile(regpattern)
reg = re.compile(regpattern, re.MULTILINE)
except re.error:
raise TemplateSyntaxError(_("Wrong regular expression"))
fileContent = readFile(fname)

@ -1,35 +1,11 @@
from calculate.variables.datavars import Variable, Namespace, Dependence, \
StringType, BooleanType, HashType, ListType, Calculate, Copy
from calculate.vars.main.os.func import get_arch_gentoo
from calculate.utils.package import PackageAtomParser
def get_available_audio_system():
audio_systems = (
('alsa', None),
('pulseaudio', 'media-sound/pulseaudio')
)
package_db = PackageAtomParser()
return [
audio_system
for audio_system, pkg in audio_systems
if pkg is None or package_db.is_package_exists(pkg)
]
def get_audio_selected(available_systems, cmdline_audio):
available_systems = available_systems.value
if 'pulseaudio' in available_systems:
cmdline_audio = cmdline_audio.value
if cmdline_audio and cmdline_audio == 'alsa':
return 'alsa'
else:
return 'pulseaudio'
return 'alsa'
from .func import *
with Namespace("arch"):
Variable("machine", type=StringType,
source=Copy("main.os.arch.machine"))
source=Calculate(lambda x: x.value, "main.os.arch.machine"))
Variable("gentoo", type=StringType,
source=Calculate(get_arch_gentoo, ".machine"))

@ -290,6 +290,16 @@ parameter_2 = {{ vars_1.var_1 }}'''
"grep": "'/test_grep', 'NOSTATUSLINE=(.*)'",
"result": "true"
},
{
"name": "multiline pattern found",
"grep": "'/test_grep', '^NOSTATUSLINE=true'",
"result": "NOSTATUSLINE=true"
},
{
"name": "multiline pattern not found",
"grep": "'/test_grep', '^STATUSLINE=true'",
"result": ""
},
],
ids=lambda x:x["name"])
def test_grep(self, case):

@ -3,9 +3,14 @@ import calculate.vars.main.os as main_os
import calculate.vars.main.cl as main_cl
import calculate.vars.main.os.x11 as main_os_x11
from calculate.vars.main.cl import CmdlineParams
import calculate.vars.install.os.func as install_os
import mock
from itertools import chain
class Var:
def __init__(self, value):
self.value = value
@pytest.mark.parametrize('case',
[
{
@ -110,13 +115,9 @@ def test_main_cl_cmdline(case):
ids=lambda x:"{}->{}".format(x["source"],x["result"]))
@pytest.mark.calculate_vars
def test_main_os_get_arch_gentoo(case):
class Var:
def __init__(self, value):
self.value = value
assert main_os.get_arch_gentoo(Var(case["source"])) == case["result"]
import calculate.vars.install.os.func as install_os
@pytest.mark.parametrize('case',
[
{
@ -135,27 +136,50 @@ import calculate.vars.install.os.func as install_os
def test_install_os_get_available_audio_system(case):
with mock.patch('calculate.vars.install.os.func.PackageAtomParser.is_package_exists') as exists:
exists.return_value = case["exists"]
assert install_os.get_available_audio_system() == case["result"]
assert install_os.get_available_audio_system() == case["result"]
#def get_available_audio_system():
# audio_systems = (
# ('alsa', None),
# ('pulseaudio', 'media-sound/pulseaudio')
# )
# package_db = PackageAtomParser()
# return [
# audio_system
# for audio_system, pkg in audio_systems
# if pkg is None or package_db.is_package_exists(pkg)
# ]
#
#def get_audio_selected(available_systems, cmdline_audio):
# available_systems = available_systems.value
#
# if 'pulseaudio' in available_systems:
# cmdline_audio = cmdline_audio.value
# if cmdline_audio and cmdline_audio == 'alsa':
# return 'alsa'
# else:
# return 'pulseaudio'
# return 'alsa'
@pytest.mark.parametrize('case',
[
{
"name": "default all available",
"available_systems": ["alsa","pulseaudio"],
"cmdline_audio": "",
"result": "pulseaudio"
},
{
"name": "default all pulse unavailable",
"available_systems": ["alsa"],
"cmdline_audio": "",
"result": "alsa"
},
{
"name": "all available alsa selected",
"available_systems": ["alsa","pulseaudio"],
"cmdline_audio": "alsa",
"result": "alsa"
},
{
"name": "all available pulse selected",
"available_systems": ["alsa","pulseaudio"],
"cmdline_audio": "pulseaudio",
"result": "pulseaudio"
},
{
"name": "all available wrong cmd line",
"available_systems": ["alsa","pulseaudio"],
"cmdline_audio": "wrong",
"result": "pulseaudio"
},
{
"name": "pulse not available wrong cmd line",
"available_systems": ["alsa"],
"cmdline_audio": "wrong",
"result": "alsa"
},
],
ids=lambda x:x["name"])
@pytest.mark.calculate_vars
def test_install_os_get_available_audio_system(case):
assert install_os.get_audio_selected(
Var(case["available_systems"]),
Var(case["cmdline_audio"])) == case["result"]

Loading…
Cancel
Save