Coverage for hdl_registers/generator/python/test/accessor/test_accessor_basic.py: 100%

18 statements  

« prev     ^ index     » next       coverage.py v7.6.12, created at 2025-03-12 11:11 +0000

1# -------------------------------------------------------------------------------------------------- 

2# Copyright (c) Lukas Vik. All rights reserved. 

3# 

4# This file is part of the hdl-registers project, an HDL register generator fast enough to run 

5# in real time. 

6# https://hdl-registers.com 

7# https://github.com/hdl-registers/hdl-registers 

8# -------------------------------------------------------------------------------------------------- 

9 

10import pytest 

11from tsfpga.system_utils import load_python_module 

12 

13from hdl_registers.generator.python.accessor import PythonAccessorGenerator 

14from hdl_registers.generator.python.pickle import PythonPickleGenerator 

15from hdl_registers.register_list import RegisterList 

16 

17 

18def test_generate_with_no_registers(tmp_path): 

19 register_list = RegisterList(name="test") 

20 

21 PythonPickleGenerator(register_list=register_list, output_folder=tmp_path).create() 

22 PythonAccessorGenerator(register_list=register_list, output_folder=tmp_path).create() 

23 

24 python_module = load_python_module(tmp_path / "test_accessor.py") 

25 python_module.get_accessor(register_accessor=None) 

26 

27 

28def test_create_accessor_without_pickle_should_raise_exception(tmp_path): 

29 register_list = RegisterList(name="test") 

30 

31 PythonAccessorGenerator(register_list=register_list, output_folder=tmp_path).create() 

32 

33 python_module = load_python_module(tmp_path / "test_accessor.py") 

34 with pytest.raises(FileNotFoundError) as exception_info: 

35 python_module.get_accessor(register_accessor=None) 

36 assert str(exception_info.value) == ( 

37 f"Could not find the pickle file {tmp_path / 'test.pickle'}, " 

38 "make sure this artifact is generated." 

39 )