From bf7d2b1e27bfac43e59fb158149464634b59c5d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Mon, 4 Feb 2019 15:42:40 +0100 Subject: [PATCH] Added some more unit tests for BlendPath --- tests/test_bpathlib.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/tests/test_bpathlib.py b/tests/test_bpathlib.py index 154bbfd..165fafa 100644 --- a/tests/test_bpathlib.py +++ b/tests/test_bpathlib.py @@ -1,5 +1,6 @@ from pathlib import Path, PurePosixPath import unittest +from unittest import mock from blender_asset_tracer.bpathlib import BlendPath @@ -13,6 +14,39 @@ class BlendPathTest(unittest.TestCase): p = BlendPath(Path(r'C:\some\file.blend')) self.assertEqual(b'C:/some/file.blend', p) + def test_invalid_type(self): + with self.assertRaises(TypeError): + BlendPath('//some/file.blend') + with self.assertRaises(TypeError): + BlendPath(47) + with self.assertRaises(TypeError): + BlendPath(None) + + def test_repr(self): + p = BlendPath(b'//some/file.blend') + self.assertEqual("BlendPath(b'//some/file.blend')", repr(p)) + p = BlendPath(PurePosixPath('//some/file.blend')) + self.assertEqual("BlendPath(b'//some/file.blend')", repr(p)) + + def test_to_path(self): + self.assertEqual(PurePosixPath('/some/file.blend'), + BlendPath(b'/some/file.blend').to_path()) + self.assertEqual(PurePosixPath('C:/some/file.blend'), + BlendPath(b'C:/some/file.blend').to_path()) + self.assertEqual(PurePosixPath('C:/some/file.blend'), + BlendPath(br'C:\some\file.blend').to_path()) + + with mock.patch('sys.getfilesystemencoding') as mock_getfse: + mock_getfse.return_value = 'latin1' + + # \xe9 is Latin-1 for é, and BlendPath should revert to using the + # (mocked) filesystem encoding when decoding as UTF-8 fails. + self.assertEqual(PurePosixPath('C:/some/filé.blend'), + BlendPath(b'C:\\some\\fil\xe9.blend').to_path()) + + with self.assertRaises(ValueError): + BlendPath(b'//relative/path.jpg').to_path() + def test_is_absolute(self): self.assertFalse(BlendPath(b'//some/file.blend').is_absolute()) self.assertTrue(BlendPath(b'/some/file.blend').is_absolute())