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