Admin Panel
import pytest
from amitools.fd import read_lib_fd
from amitools.vamos.lib.VamosTestLibrary import VamosTestLibrary
from amitools.vamos.libcore import LibImplScanner
from amitools.vamos.error import VamosInternalError
def libcore_impl_scan_checked_vamos_test():
name = 'vamostest.library'
fd = read_lib_fd(name)
impl = VamosTestLibrary()
scanner = LibImplScanner()
with pytest.raises(VamosInternalError):
scanner.scan_checked(name, impl, fd)
def libcore_impl_scan_vamos_test():
name = 'vamostest.library'
fd = read_lib_fd(name)
impl = VamosTestLibrary()
# inject error func
def PrintHello(self, ctx, wrong):
pass
impl.PrintHello = PrintHello.__get__(impl, impl.__class__)
# scan impl
scanner = LibImplScanner()
res = scanner.scan(name, impl, fd)
assert res.get_name() == name
assert res.get_impl() == impl
assert res.get_fd() == fd
assert res.get_num_valid_funcs() == 4
assert res.get_num_missing_funcs() == 1
assert res.get_num_error_funcs() == 1
assert res.get_num_invalid_funcs() == 1
# check funcs
missing_funcs = res.get_missing_funcs()
assert missing_funcs == {
"Dummy": fd.get_func_by_name("Dummy")
}
missing_names = res.get_missing_func_names()
assert missing_names == ["Dummy"]
invalid_funcs = res.get_invalid_funcs()
assert invalid_funcs == {
"InvalidFunc": impl.InvalidFunc
}
invalid_names = res.get_invalid_func_names()
assert invalid_names == ["InvalidFunc"]
error_funcs = res.get_error_funcs()
assert error_funcs == {
"PrintHello": (fd.get_func_by_name("PrintHello"), impl.PrintHello)
}
error_names = res.get_error_func_names()
assert error_names == ["PrintHello"]
valid_funcs = res.get_valid_funcs()
assert valid_funcs == {
"PrintString": (fd.get_func_by_name("PrintString"), impl.PrintString),
"Add": (fd.get_func_by_name("Add"), impl.Add),
"Swap": (fd.get_func_by_name("Swap"), impl.Swap),
"RaiseError": (fd.get_func_by_name("RaiseError"), impl.RaiseError)
}
valid_names = res.get_valid_func_names()
assert valid_names == ["Add", "PrintString", "RaiseError", "Swap"]