Coverage for test/unit/assets/test_json_assets.py: 95%

22 statements  

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

1"""Testing all json assets for integrity 

2""" 

3 

4import os 

5import tempfile 

6import unittest 

7from pathlib import Path 

8 

9import bim2sim 

10from bim2sim.utilities.common_functions import validateJSON 

11 

12 

13class TestJSONAssets(unittest.TestCase): 

14 

15 @classmethod 

16 def setUpClass(cls): 

17 cls.root = tempfile.TemporaryDirectory(prefix='bim2sim_') 

18 os.mkdir(os.path.join(cls.root.name, 'templates')) 

19 

20 @classmethod 

21 def tearDownClass(cls): 

22 # Decision.reset_decisions() 

23 cls.root.cleanup() 

24 

25 def test_json_assets(self): 

26 assets_path = Path(bim2sim.__file__).parent / 'assets/' 

27 json_gen = assets_path.rglob('*.json') 

28 invalids = [] 

29 for json_file_path in json_gen: 

30 if not validateJSON(json_file_path): 

31 invalids.append(json_file_path) 

32 self.assertEqual( 

33 len(invalids), 0, 'Invalid JSON files found: {}'.format( 

34 invalids))