Coverage for tests/unit/lib/test_util.py: 100%

22 statements  

« prev     ^ index     » next       coverage.py v7.4.4, created at 2024-03-20 05:56 +0000

1import os 

2import tempfile 

3import unittest 

4from unittest.mock import Mock, patch 

5 

6from tatlin.lib.util import format_status, get_recent_files, resolve_path 

7 

8 

9class UtilTest(unittest.TestCase): 

10 def test_resolve_path(self): 

11 self.assertEqual(resolve_path("/tmp/test"), "/tmp/test") 

12 

13 with patch("sys.frozen", True, create=True), patch( 

14 "sys._MEIPASS", "/", create=True 

15 ): 

16 self.assertEqual(resolve_path("test"), "/tatlin/test") 

17 

18 def test_format_status(self): 

19 self.assertEqual(format_status("hello", 10, 10), " hello (10.0B, 10 vertices)") 

20 self.assertEqual(format_status("hello", 1024, 1), " hello (1.0KB, 1 vertex)") 

21 self.assertEqual( 

22 format_status("hello", 1048576, 10), " hello (1.0MB, 10 vertices)" 

23 ) 

24 self.assertEqual( 

25 format_status("hello", 1073741824, 10), " hello (1.0GB, 10 vertices)" 

26 ) 

27 

28 def test_get_recent_files(self): 

29 mock = Mock() 

30 mock.read.return_value = "/tmp/test.stl:/tmp/test2.stl0" 

31 # files that don't exist are not returned 

32 self.assertEqual(get_recent_files(mock), []) 

33 

34 with tempfile.NamedTemporaryFile(suffix=".gcode") as f: 

35 mock.read.return_value = f.name 

36 self.assertEqual( 

37 get_recent_files(mock), [(os.path.basename(f.name), f.name, None)] 

38 )