Mercurial > hg > dotemacs
annotate elpa/elpy-1.14.1/elpy/tests/test_server.py @ 156:c745e2cc79ee
elpy: update along with direct deps
author | Jordi Gutiérrez Hermoso <jordigh@octave.org> |
---|---|
date | Mon, 27 Feb 2017 12:17:38 -0500 |
parents | elpa/elpy-1.12.0/elpy/tests/test_server.py@55ceabc58fcc |
children |
rev | line source |
---|---|
152
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
1 # coding: utf-8 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
2 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
3 """Tests for the elpy.server module""" |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
4 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
5 import os |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
6 import tempfile |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
7 import unittest |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
8 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
9 import mock |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
10 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
11 from elpy import rpc |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
12 from elpy import server |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
13 from elpy.tests import compat |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
14 from elpy.tests.support import BackendTestCase |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
15 import elpy.refactor |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
16 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
17 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
18 class ServerTestCase(unittest.TestCase): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
19 def setUp(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
20 self.srv = server.ElpyRPCServer() |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
21 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
22 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
23 class BackendCallTestCase(ServerTestCase): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
24 def assert_calls_backend(self, method): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
25 with mock.patch("elpy.server.get_source") as get_source: |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
26 with mock.patch.object(self.srv, "backend") as backend: |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
27 get_source.return_value = "transformed source" |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
28 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
29 getattr(self.srv, method)("filename", "source", "offset") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
30 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
31 get_source.assert_called_with("source") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
32 getattr(backend, method).assert_called_with( |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
33 "filename", "transformed source", "offset" |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
34 ) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
35 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
36 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
37 class TestInit(ServerTestCase): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
38 def test_should_not_select_a_backend_by_default(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
39 self.assertIsNone(self.srv.backend) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
40 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
41 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
42 class TestRPCEcho(ServerTestCase): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
43 def test_should_return_arguments(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
44 self.assertEqual(("hello", "world"), |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
45 self.srv.rpc_echo("hello", "world")) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
46 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
47 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
48 class TestRPCInit(ServerTestCase): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
49 @mock.patch("elpy.jedibackend.JediBackend") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
50 @mock.patch("elpy.ropebackend.RopeBackend") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
51 def test_should_set_project_root(self, RopeBackend, JediBackend): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
52 self.srv.rpc_init({"project_root": "/project/root", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
53 "backend": "rope"}) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
54 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
55 self.assertEqual("/project/root", self.srv.project_root) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
56 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
57 @mock.patch("elpy.jedibackend.JediBackend") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
58 @mock.patch("elpy.ropebackend.RopeBackend") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
59 def test_should_initialize_rope(self, RopeBackend, JediBackend): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
60 self.srv.rpc_init({"project_root": "/project/root", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
61 "backend": "rope"}) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
62 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
63 RopeBackend.assert_called_with("/project/root") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
64 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
65 @mock.patch("elpy.jedibackend.JediBackend") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
66 @mock.patch("elpy.ropebackend.RopeBackend") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
67 def test_should_initialize_jedi(self, RopeBackend, JediBackend): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
68 self.srv.rpc_init({"project_root": "/project/root", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
69 "backend": "jedi"}) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
70 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
71 JediBackend.assert_called_with("/project/root") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
72 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
73 @mock.patch("elpy.jedibackend.JediBackend") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
74 @mock.patch("elpy.ropebackend.RopeBackend") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
75 def test_should_use_rope_if_available_and_requested( |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
76 self, RopeBackend, JediBackend): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
77 RopeBackend.return_value.name = "rope" |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
78 JediBackend.return_value.name = "jedi" |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
79 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
80 self.srv.rpc_init({"project_root": "/project/root", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
81 "backend": "rope"}) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
82 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
83 self.assertEqual("rope", self.srv.backend.name) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
84 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
85 @mock.patch("elpy.jedibackend.JediBackend") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
86 @mock.patch("elpy.ropebackend.RopeBackend") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
87 def test_should_use_jedi_if_available_and_requested( |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
88 self, RopeBackend, JediBackend): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
89 RopeBackend.return_value.name = "rope" |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
90 JediBackend.return_value.name = "jedi" |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
91 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
92 self.srv.rpc_init({"project_root": "/project/root", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
93 "backend": "jedi"}) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
94 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
95 self.assertEqual("jedi", self.srv.backend.name) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
96 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
97 @mock.patch("elpy.jedibackend.JediBackend") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
98 @mock.patch("elpy.ropebackend.RopeBackend") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
99 def test_should_use_rope_if_available_and_nothing_requested( |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
100 self, RopeBackend, JediBackend): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
101 RopeBackend.return_value.name = "rope" |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
102 JediBackend.return_value.name = "jedi" |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
103 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
104 self.srv.rpc_init({"project_root": "/project/root", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
105 "backend": None}) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
106 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
107 self.assertEqual("rope", self.srv.backend.name) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
108 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
109 @mock.patch("elpy.jedibackend.JediBackend") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
110 @mock.patch("elpy.ropebackend.RopeBackend") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
111 def test_should_use_jedi_if_rope_not_available_and_nothing_requested( |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
112 self, RopeBackend, JediBackend): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
113 RopeBackend.return_value.name = "rope" |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
114 JediBackend.return_value.name = "jedi" |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
115 old_rope = server.ropebackend |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
116 server.ropebackend = None |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
117 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
118 try: |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
119 self.srv.rpc_init({"project_root": "/project/root", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
120 "backend": None}) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
121 finally: |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
122 server.ropebackend = old_rope |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
123 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
124 self.assertEqual("jedi", self.srv.backend.name) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
125 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
126 @mock.patch("elpy.jedibackend.JediBackend") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
127 @mock.patch("elpy.ropebackend.RopeBackend") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
128 def test_should_use_none_if_nothing_available( |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
129 self, RopeBackend, JediBackend): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
130 RopeBackend.return_value.name = "rope" |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
131 JediBackend.return_value.name = "jedi" |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
132 old_rope = server.ropebackend |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
133 old_jedi = server.jedibackend |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
134 server.ropebackend = None |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
135 server.jedibackend = None |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
136 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
137 try: |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
138 self.srv.rpc_init({"project_root": "/project/root", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
139 "backend": None}) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
140 finally: |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
141 server.ropebackend = old_rope |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
142 server.jedibackend = old_jedi |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
143 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
144 self.assertIsNone(self.srv.backend) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
145 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
146 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
147 class TestRPCGetCalltip(BackendCallTestCase): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
148 def test_should_call_backend(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
149 self.assert_calls_backend("rpc_get_calltip") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
150 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
151 def test_should_handle_no_backend(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
152 self.srv.backend = None |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
153 self.assertIsNone(self.srv.rpc_get_calltip("filname", "source", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
154 "offset")) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
155 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
156 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
157 class TestRPCGetCompletions(BackendCallTestCase): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
158 def test_should_call_backend(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
159 self.assert_calls_backend("rpc_get_completions") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
160 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
161 def test_should_handle_no_backend(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
162 self.srv.backend = None |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
163 self.assertEqual([], |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
164 self.srv.rpc_get_completions("filname", "source", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
165 "offset")) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
166 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
167 def test_should_sort_results(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
168 with mock.patch.object(self.srv, 'backend') as backend: |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
169 backend.rpc_get_completions.return_value = [ |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
170 {'name': '_e'}, |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
171 {'name': '__d'}, |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
172 {'name': 'c'}, |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
173 {'name': 'B'}, |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
174 {'name': 'a'}, |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
175 ] |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
176 expected = list(reversed(backend.rpc_get_completions.return_value)) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
177 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
178 actual = self.srv.rpc_get_completions("filename", "source", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
179 "offset") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
180 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
181 self.assertEqual(expected, actual) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
182 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
183 def test_should_uniquify_results(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
184 with mock.patch.object(self.srv, 'backend') as backend: |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
185 backend.rpc_get_completions.return_value = [ |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
186 {'name': 'a'}, |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
187 {'name': 'a'}, |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
188 ] |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
189 expected = [{'name': 'a'}] |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
190 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
191 actual = self.srv.rpc_get_completions("filename", "source", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
192 "offset") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
193 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
194 self.assertEqual(expected, actual) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
195 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
196 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
197 class TestRPCGetCompletionDocs(ServerTestCase): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
198 def test_should_call_backend(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
199 with mock.patch.object(self.srv, "backend") as backend: |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
200 self.srv.rpc_get_completion_docstring("completion") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
201 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
202 (backend.rpc_get_completion_docstring |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
203 .assert_called_with("completion")) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
204 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
205 def test_should_handle_no_backend(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
206 self.srv.backend = None |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
207 self.assertIsNone(self.srv.rpc_get_completion_docstring("foo")) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
208 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
209 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
210 class TestRPCGetCompletionLocation(ServerTestCase): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
211 def test_should_call_backend(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
212 with mock.patch.object(self.srv, "backend") as backend: |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
213 self.srv.rpc_get_completion_location("completion") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
214 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
215 (backend.rpc_get_completion_location |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
216 .assert_called_with("completion")) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
217 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
218 def test_should_handle_no_backend(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
219 self.srv.backend = None |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
220 self.assertIsNone(self.srv.rpc_get_completion_location("foo")) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
221 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
222 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
223 class TestRPCGetDefinition(BackendCallTestCase): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
224 def test_should_call_backend(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
225 self.assert_calls_backend("rpc_get_definition") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
226 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
227 def test_should_handle_no_backend(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
228 self.srv.backend = None |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
229 self.assertIsNone(self.srv.rpc_get_definition("filname", "source", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
230 "offset")) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
231 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
232 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
233 class TestRPCGetDocstring(BackendCallTestCase): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
234 def test_should_call_backend(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
235 self.assert_calls_backend("rpc_get_docstring") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
236 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
237 def test_should_handle_no_backend(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
238 self.srv.backend = None |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
239 self.assertIsNone(self.srv.rpc_get_docstring("filname", "source", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
240 "offset")) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
241 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
242 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
243 class TestRPCGetPydocCompletions(ServerTestCase): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
244 @mock.patch.object(server, 'get_pydoc_completions') |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
245 def test_should_call_pydoc_completions(self, get_pydoc_completions): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
246 srv = server.ElpyRPCServer() |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
247 srv.rpc_get_pydoc_completions() |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
248 get_pydoc_completions.assert_called_with(None) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
249 srv.rpc_get_pydoc_completions("foo") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
250 get_pydoc_completions.assert_called_with("foo") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
251 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
252 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
253 class TestGetPydocDocumentation(ServerTestCase): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
254 @mock.patch("pydoc.render_doc") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
255 def test_should_find_documentation(self, render_doc): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
256 render_doc.return_value = "expected" |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
257 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
258 actual = self.srv.rpc_get_pydoc_documentation("open") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
259 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
260 render_doc.assert_called_with("open", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
261 "Elpy Pydoc Documentation for %s", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
262 False) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
263 self.assertEqual("expected", actual) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
264 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
265 def test_should_return_none_for_unknown_module(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
266 actual = self.srv.rpc_get_pydoc_documentation("frob.open") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
267 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
268 self.assertIsNone(actual) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
269 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
270 def test_should_return_valid_unicode(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
271 import json |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
272 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
273 docstring = self.srv.rpc_get_pydoc_documentation("tarfile") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
274 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
275 json.dumps(docstring) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
276 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
277 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
278 class TestRPCGetRefactorOptions(BackendTestCase): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
279 @mock.patch.object(compat.builtins, '__import__') |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
280 def test_should_fail_if_rope_is_not_available(self, import_): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
281 import_.side_effect = ImportError |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
282 filename = self.project_file("foo.py", "") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
283 srv = server.ElpyRPCServer() |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
284 self.assertRaises(ImportError, srv.rpc_get_refactor_options, |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
285 filename, 0) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
286 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
287 @mock.patch.object(elpy.refactor, 'Refactor') |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
288 def test_should_initialize_and_call_refactor_object(self, Refactor): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
289 filename = self.project_file("foo.py", "import foo") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
290 srv = server.ElpyRPCServer() |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
291 srv.project_root = self.project_root |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
292 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
293 srv.rpc_get_refactor_options(filename, 5) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
294 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
295 Refactor.assert_called_with(self.project_root, filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
296 Refactor.return_value.get_refactor_options.assert_called_with(5, None) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
297 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
298 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
299 class TestRPCRefactor(BackendTestCase): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
300 @mock.patch.object(compat.builtins, '__import__') |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
301 def test_should_fail_if_rope_is_not_available(self, import_): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
302 import_.side_effect = ImportError |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
303 filename = self.project_file("foo.py", "") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
304 srv = server.ElpyRPCServer() |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
305 self.assertRaises(ImportError, srv.rpc_refactor, |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
306 filename, 'foo', ()) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
307 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
308 @mock.patch.object(elpy.refactor, 'Refactor') |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
309 def test_should_initialize_and_call_refactor_object_with_args( |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
310 self, Refactor): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
311 filename = self.project_file("foo.py", "import foo") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
312 srv = server.ElpyRPCServer() |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
313 srv.project_root = self.project_root |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
314 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
315 srv.rpc_refactor(filename, 'foo', (1, 2, 3)) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
316 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
317 Refactor.assert_called_with(self.project_root, filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
318 Refactor.return_value.get_changes.assert_called_with('foo', 1, 2, 3) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
319 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
320 @mock.patch.object(elpy.refactor, 'Refactor') |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
321 def test_should_initialize_and_call_refactor_object_without_args( |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
322 self, Refactor): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
323 filename = self.project_file("foo.py", "import foo") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
324 srv = server.ElpyRPCServer() |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
325 srv.project_root = self.project_root |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
326 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
327 srv.rpc_refactor(filename, 'foo', None) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
328 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
329 Refactor.assert_called_with(self.project_root, filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
330 Refactor.return_value.get_changes.assert_called_with('foo') |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
331 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
332 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
333 class TestRPCGetUsages(BackendCallTestCase): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
334 def test_should_call_backend(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
335 self.assert_calls_backend("rpc_get_usages") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
336 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
337 def test_should_handle_no_backend(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
338 self.srv.backend = None |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
339 with self.assertRaises(rpc.Fault): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
340 self.assertIsNone(self.srv.rpc_get_usages("filname", "source", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
341 "offset")) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
342 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
343 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
344 class TestRPCImportMagic(ServerTestCase): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
345 def test_should_call_importmagic(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
346 with mock.patch.object(self.srv, "import_magic") as impmagic: |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
347 self.srv.rpc_get_import_symbols("filename", "source", "os") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
348 impmagic.get_import_symbols.assert_called_with("os") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
349 self.srv.rpc_add_import("filename", "source", "import os") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
350 impmagic.add_import.assert_called_with("source", "import os") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
351 self.srv.rpc_get_unresolved_symbols("filename", "source") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
352 impmagic.get_unresolved_symbols.assert_called_with("source") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
353 self.srv.rpc_remove_unreferenced_imports("filename", "source") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
354 impmagic.remove_unreferenced_imports.assert_called_with("source") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
355 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
356 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
357 class TestGetSource(unittest.TestCase): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
358 def test_should_return_string_by_default(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
359 self.assertEqual(server.get_source("foo"), |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
360 "foo") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
361 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
362 def test_should_return_file_contents(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
363 fd, filename = tempfile.mkstemp(prefix="elpy-test-") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
364 self.addCleanup(os.remove, filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
365 with open(filename, "w") as f: |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
366 f.write("file contents") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
367 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
368 fileobj = {'filename': filename} |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
369 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
370 self.assertEqual(server.get_source(fileobj), |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
371 "file contents") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
372 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
373 def test_should_clean_up_tempfile(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
374 fd, filename = tempfile.mkstemp(prefix="elpy-test-") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
375 with open(filename, "w") as f: |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
376 f.write("file contents") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
377 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
378 fileobj = {'filename': filename, |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
379 'delete_after_use': True} |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
380 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
381 self.assertEqual(server.get_source(fileobj), |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
382 "file contents") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
383 self.assertFalse(os.path.exists(filename)) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
384 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
385 def test_should_support_utf8(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
386 fd, filename = tempfile.mkstemp(prefix="elpy-test-") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
387 self.addCleanup(os.remove, filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
388 with open(filename, "wb") as f: |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
389 f.write(u"möp".encode("utf-8")) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
390 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
391 source = server.get_source({'filename': filename}) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
392 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
393 self.assertEqual(source, u"möp") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
394 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
395 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
396 class TestPysymbolKey(BackendTestCase): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
397 def keyLess(self, a, b): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
398 self.assertLess(b, a) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
399 self.assertLess(server._pysymbol_key(a), |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
400 server._pysymbol_key(b)) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
401 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
402 def test_should_be_case_insensitive(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
403 self.keyLess("bar", "Foo") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
404 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
405 def test_should_sort_private_symbols_after_public_symbols(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
406 self.keyLess("foo", "_bar") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
407 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
408 def test_should_sort_private_symbols_after_dunder_symbols(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
409 self.assertLess(server._pysymbol_key("__foo__"), |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
410 server._pysymbol_key("_bar")) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
411 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
412 def test_should_sort_dunder_symbols_after_public_symbols(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
413 self.keyLess("bar", "__foo") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
414 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
415 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
416 class Autopep8TestCase(ServerTestCase): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
417 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
418 def test_rpc_fix_code_should_return_formatted_string(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
419 code_block = 'x= 123\n' |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
420 new_block = self.srv.rpc_fix_code(code_block) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
421 self.assertEqual(new_block, 'x = 123\n') |