1# -*- coding: utf-8 -*- 2# 3# Copyright © Spyder Project Contributors 4# Licensed under the terms of the MIT License 5# 6 7""" 8Tests for explorer.py 9""" 10# Standard imports 11import os 12import os.path as osp 13 14# Test library imports 15import pytest 16 17# Local imports 18from spyder.widgets.projects.explorer import ProjectExplorerTest 19from spyder.py3compat import to_text_string 20 21 22@pytest.fixture 23def project_explorer(qtbot, request, tmpdir): 24 """Setup Project Explorer widget.""" 25 directory = request.node.get_marker('change_directory') 26 if directory: 27 project_dir = to_text_string(tmpdir.mkdir('project')) 28 else: 29 project_dir = None 30 project_explorer = ProjectExplorerTest(directory=project_dir) 31 qtbot.addWidget(project_explorer) 32 return project_explorer 33 34 35@pytest.mark.change_directory 36def test_change_directory_in_project_explorer(project_explorer, qtbot): 37 """Test changing a file from directory in the Project explorer.""" 38 # Create project 39 project = project_explorer 40 project_dir = project.directory 41 42 # Create a temp project directory and file 43 project_dir_tmp = osp.join(project_dir, u'測試') 44 project_file = osp.join(project_dir, 'script.py') 45 46 # Create an empty file in the project dir 47 os.mkdir(project_dir_tmp) 48 open(project_file, 'w').close() 49 50 # Move Python file 51 project.explorer.treewidget.move( 52 fnames=[osp.join(project_dir, 'script.py')], 53 directory=project_dir_tmp) 54 55 # Assert content was moved 56 assert osp.isfile(osp.join(project_dir_tmp, 'script.py')) 57 58 59def test_project_explorer(project_explorer, qtbot): 60 """Run project explorer.""" 61 project = project_explorer 62 project.resize(250, 480) 63 project.show() 64 assert project 65 66 67if __name__ == "__main__": 68 pytest.main() 69