def test_import_merge_materials(self): # Arrange mat, _, tex = self._get_compatible_material() prefs = utils.get_preferences() tex_folder = prefs.textures_folder prefs.textures_folder = 'gamedata/textures/' # Act bpy.ops.xray_import.object( directory=self.relpath(), files=[{ 'name': 'test_fmt.object' }], ) prefs.textures_folder = tex_folder # Assert self.assertReportsNotContains('WARNING') imported_material = bpy.data.objects['test_fmt.object'].data.materials[ 0] self.assertEqual(imported_material, mat) if not bpy.app.version >= (2, 80, 0): imported_texture = imported_material.texture_slots[0].texture self.assertEqual(imported_texture, tex)
def test_default(self): prefs = utils.get_preferences() prefs.gamemtl_file = os.path.join(self.relpath(), 'gamemtl.xr') # Import bpy.ops.xray_import.level(filepath=os.path.join( self.relpath(), 'test_fmt_level', 'level' )) # Export level_obj = bpy.data.objects['test_fmt_level'] if bpy.app.version >= (2, 80, 0): level_obj.select_set(True) else: level_obj.select = True directory = self.outpath('test_fmt_level_export') if not os.path.exists(directory): os.makedirs(directory) utils.set_active_object(level_obj) bpy.ops.xray_export.level(directory=directory) # Assert self.assertReportsNotContains('WARNING')
def test_default(self): prefs = utils.get_preferences() prefs.objects_folder = os.path.join(os.curdir, 'tests', 'cases') # Act bpy.ops.xray_import.scene( filepath=os.path.join(self.relpath(), 'test_fmt.level')) # Assert self.assertReportsNotContains('WARNING')
def test_auto_values_if_no_paths(self): prefs = utils.get_preferences() reset_settings(prefs) prefs.textures_folder = np('/gdx/textures') self.assertEqual(prefs.gamedata_folder, '') self.assertEqual(prefs.gamedata_folder_auto, '') self.assertEqual(prefs.gamemtl_file, '') self.assertEqual(prefs.gamemtl_file_auto, '') self.assertEqual(prefs.eshader_file, '') self.assertEqual(prefs.eshader_file_auto, '') self.assertEqual(prefs.cshader_file, '') self.assertEqual(prefs.cshader_file_auto, '')
def test_auto_values_from_some_file(self): prefs = utils.get_preferences() reset_settings(prefs) prefs.gamemtl_file = np('/gdf/gamemtl.xr') self.assertEqual(prefs.gamedata_folder, '') self.assertEqual(prefs.gamedata_folder_auto, np('/gdf')) self.assertEqual(prefs.textures_folder, '') self.assertEqual(prefs.textures_folder_auto, np('/gdf/textures')) self.assertEqual(prefs.eshader_file, '') self.assertEqual(prefs.eshader_file_auto, np('/gdf/shaders.xr')) self.assertEqual(prefs.cshader_file, '') self.assertEqual(prefs.cshader_file_auto, np('/gdf/shaders_xrlc.xr'))
def test_auto_values_no_reassign(self): prefs = utils.get_preferences() reset_settings(prefs) prefs.textures_folder = np('/gdr/textures') self.assertEqual(prefs.textures_folder, np('/gdr/textures')) self.assertEqual(prefs.gamemtl_file, '') self.assertEqual(prefs.gamemtl_file_auto, np('/gdr/gamemtl.xr')) prefs.gamemtl_file = prefs.gamemtl_file self.assertEqual(prefs.gamemtl_file, '') prefs.gamemtl_file = np('/gdr/gamemtl.xrx') self.assertEqual(prefs.gamemtl_file_auto, np('/gdr/gamemtl.xrx'))
def _get_compatible_material(self): prefs = utils.get_preferences() tex_folder = prefs.textures_folder prefs.textures_folder = 'gamedata/textures/' img = bpy.data.images.new('texture', 0, 0) img.source = 'FILE' img.filepath = 'gamedata/textures/eye.dds' mat = _create_compatible_material_object() if bpy.app.version >= (2, 80, 0): node_tree = mat.node_tree tex = node_tree.nodes.new('ShaderNodeTexImage') tex.image = img tex.location.x -= 500 princ_shader = node_tree.nodes['Principled BSDF'] node_tree.links.new(tex.outputs['Color'], princ_shader.inputs['Base Color']) mts = None else: tex = bpy.data.textures.new('eye', type='IMAGE') tex.image = img mts = mat.texture_slots.add() mts.uv_layer = 'uvm' mts.texture = tex return mat, mts, tex
def test_auto_values_default(self): prefs = utils.get_preferences() reset_settings(prefs) for prop in addon_prefs.props.__AUTO_PROPS__: self.assertEqual(getattr(prefs, prop), '', msg=prop) self.assertEqual(getattr(prefs, prop + '_auto'), '', msg=prop + '_auto')