Skip to content

Commit a19b075

Browse files
Make full path construction windows compliant.
1 parent 4a787b2 commit a19b075

File tree

4 files changed

+26
-28
lines changed

4 files changed

+26
-28
lines changed

test/test_material.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@
33

44
import pywavefront.material
55

6+
def prepend_dir(file):
7+
return os.path.join(os.path.dirname(__file__), file)
8+
69
class TestMaterial(unittest.TestCase):
710
def setUp(self):
811
# Append current path to locate files
9-
folder = os.path.dirname(__file__) + '/'
10-
self.material = pywavefront.material.Material(folder + 'material')
11-
self.material.set_texture(folder + '4x4.png')
12+
self.material = pywavefront.material.Material(prepend_dir('material'))
13+
self.material.set_texture(prepend_dir('4x4.png'))
1214

1315
def testSetTexture(self):
1416
"Running set_texture should set a texture."

test/test_parser.py

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@
33

44
import pywavefront.parser
55

6+
def prepend_dir(file):
7+
return os.path.join(os.path.dirname(__file__), file)
8+
69
class TestParsers(unittest.TestCase):
710
def setUp(self):
811
# Append current path to locate files
9-
folder = os.path.dirname(__file__) + '/'
10-
meshes = pywavefront.Wavefront(folder + 'simple.obj')
12+
meshes = pywavefront.Wavefront(prepend_dir('simple.obj'))
1113
self.mesh1 = meshes.mesh_list[0]
1214
self.mesh2 = meshes.mesh_list[1]
1315

@@ -37,8 +39,7 @@ def testObjMaterials(self):
3739
class TestMtlParser(unittest.TestCase):
3840
def setUp(self):
3941
# Append current path to locate files
40-
self.folder = os.path.dirname(__file__) + '/'
41-
meshes = pywavefront.Wavefront(self.folder + 'simple.obj')
42+
meshes = pywavefront.Wavefront(prepend_dir('simple.obj'))
4243
self.material1 = meshes.mesh_list[0].materials[0]
4344
self.material2 = meshes.mesh_list[1].materials[0]
4445

@@ -70,17 +71,14 @@ def testMtlTextureName(self):
7071
"Parsing an obj file with known material texture should set its name."
7172
# also tests d
7273
self.assertEqual(self.material1.texture.image_name,
73-
self.folder + '4x4.png')
74+
prepend_dir('4x4.png'))
7475

7576
class TestParserFailure(unittest.TestCase):
76-
def setUp(self):
77-
# Append current path to locate files
78-
self.folder = os.path.dirname(__file__) + '/'
7977

8078
def testMissingParseFunction(self):
8179
"Attempting to parse with a missing parse function should raise an exception."
8280
# since no parse functions have been defined, this will always fail
83-
self.assertRaises(Exception, pywavefront.parser.Parser, self.folder + 'uv_sphere.obj')
81+
self.assertRaises(Exception, pywavefront.parser.Parser, prepend_dir('uv_sphere.obj'))
8482

8583
def testMissingParsedFile(self):
8684
"Referencing a missing parsed file should raise an exception."

test/test_texture.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,19 @@
33

44
import pywavefront.texture
55

6+
def prepend_dir(file):
7+
return os.path.join(os.path.dirname(__file__), file)
8+
69
class TestTexture(unittest.TestCase):
7-
def setUp(self):
8-
self.folder = os.path.dirname(__file__) + '/'
910

1011
def testPathedImageName(self):
1112
"For Texture objects, the image name should be the last component of the path."
12-
my_texture = pywavefront.texture.Texture(self.folder + '4x4.png')
13-
self.assertEqual(my_texture.image_name, self.folder + '4x4.png')
13+
my_texture = pywavefront.texture.Texture(prepend_dir('4x4.png'))
14+
self.assertEqual(my_texture.image_name, prepend_dir('4x4.png'))
1415

1516
def testNonPowerOfTwoImage(self):
1617
"Texture images that have a non-power-of-two dimension should raise an exception."
17-
self.assertRaises(Exception, pywavefront.texture.Texture, self.folder + '3x4.png')
18+
self.assertRaises(Exception, pywavefront.texture.Texture, prepend_dir('3x4.png'))
1819

1920
def testMissingFile(self):
2021
"Referencing a missing texture file should raise an exception."

test/test_wavefront.py

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@
33

44
import pywavefront
55

6+
def prepend_dir(file):
7+
return os.path.join(os.path.dirname(__file__), file)
8+
69
class TestWavefront(unittest.TestCase):
710
def setUp(self):
8-
folder = os.path.dirname(__file__) + '/'
911
self.mesh_names = ['Simple', 'SimpleB']
1012
self.material_names = ['Material.simple', 'Material2.simple']
11-
self.meshes = pywavefront.Wavefront(folder + 'simple.obj')
13+
self.meshes = pywavefront.Wavefront(prepend_dir('simple.obj'))
1214

1315
def testMaterials(self):
1416
"Ensure parsed wavefront materials match known values."
@@ -39,36 +41,31 @@ def testMeshMaterialVertices(self):
3941
self.assertEqual(len(self.meshes.meshes[self.mesh_names[0]].materials[0].vertices), 24)
4042

4143
class TestBrokenWavefront(unittest.TestCase):
42-
def setUp(self):
43-
self.folder = os.path.dirname(__file__) + '/'
4444

4545
def testUnknownUsemtl(self):
4646
"Referencing an unknown material with usemtl should raise an exception."
4747
self.assertRaises(pywavefront.PywavefrontException,
48-
pywavefront.Wavefront, self.folder + 'simple_unknown_usemtl.obj')
48+
pywavefront.Wavefront, prepend_dir('simple_unknown_usemtl.obj'))
4949

5050
def testMissingNormals(self):
5151
"If there are texture coordinates but no normals, should raise an exception."
5252
self.assertRaises(pywavefront.PywavefrontException,
53-
pywavefront.Wavefront, self.folder + 'simple_missing_normals.obj')
53+
pywavefront.Wavefront, prepend_dir('simple_missing_normals.obj'))
5454

5555
class TestNoMaterial(TestWavefront):
5656
def setUp(self):
57-
folder = os.path.dirname(__file__) + '/'
5857
# reset the obj file to new file with no mtl line
5958
self.mesh_names = ['Simple', 'SimpleB']
6059
self.material_names = [None]
61-
self.meshes = pywavefront.Wavefront(folder + 'simple_no_mtl.obj')
60+
self.meshes = pywavefront.Wavefront(prepend_dir('simple_no_mtl.obj'))
6261

6362
def testMeshMaterialVertices(self):
6463
"Mesh vertices should have known values."
6564
self.assertEqual(len(self.meshes.meshes[self.mesh_names[0]].materials[0].vertices), 48)
6665

6766
class TestNoObjectNoMaterial(TestNoMaterial):
6867
def setUp(self):
69-
folder = os.path.dirname(__file__) + '/'
70-
7168
# reset the obj file to new file with no mtl line
7269
self.mesh_names = [None]
7370
self.material_names = [None]
74-
self.meshes = pywavefront.Wavefront(folder + 'simple_no_object_no_mtl.obj')
71+
self.meshes = pywavefront.Wavefront(prepend_dir('simple_no_object_no_mtl.obj'))

0 commit comments

Comments
 (0)