Newer
Older
"""
B-ASIC test suite for load/save datastructures.
"""
from os import getcwd, path
from random import choice
from string import ascii_lowercase
import pytest
from b_asic import SFG, Output, load_structure, save_structure
class TestSaveStructures:
def test_save_sfg(self, large_operation_tree):
sfg = SFG(outputs=[Output(large_operation_tree)])
_path = save_structure(sfg)
assert _path is not None
assert path.isfile(_path)
def test_load_sfg(self, large_operation_tree):
sfg = SFG(outputs=[Output(large_operation_tree)])
_path = save_structure(sfg)
_sfg = load_structure(_path)
assert sorted([comp.type_name for comp in _sfg.components]) == sorted([comp.type_name for comp in sfg.components])
assert sfg.evaluate() == _sfg.evaluate()
def test_save_invalid_path(self, large_operation_tree):
sfg = SFG(outputs=[Output(large_operation_tree)])
_folder = "".join(choice(ascii_lowercase) for _ in range(4))
while path.exists(path.join(getcwd(), _folder)):
_folder = "".join(choice(ascii_lowercase) for _ in range(4))
_invalid_path = path.join(getcwd(), _folder, "cool.pickle")
_path = save_structure(sfg, _path=_invalid_path)
assert _path is None
def test_load_invalid_path(self, large_operation_tree):
_folder = "".join(choice(ascii_lowercase) for _ in range(4))
while path.exists(path.join(getcwd(), _folder)):
_folder = "".join(choice(ascii_lowercase) for _ in range(4))
_invalid_path = path.join(getcwd(), _folder, "cool.pickle")
_path = load_structure(_path=_invalid_path)
assert _path is None