pytest-language-server 0.3.1__tar.gz → 0.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pytest_language_server-0.3.1 → pytest_language_server-0.4.0}/Cargo.lock +1 -1
- {pytest_language_server-0.3.1 → pytest_language_server-0.4.0}/Cargo.toml +9 -1
- {pytest_language_server-0.3.1 → pytest_language_server-0.4.0}/PKG-INFO +28 -1
- {pytest_language_server-0.3.1 → pytest_language_server-0.4.0}/README.md +27 -0
- {pytest_language_server-0.3.1 → pytest_language_server-0.4.0}/pyproject.toml +1 -1
- pytest_language_server-0.4.0/src/fixtures.rs +2501 -0
- pytest_language_server-0.4.0/src/lib.rs +3 -0
- pytest_language_server-0.4.0/src/main.rs +1574 -0
- pytest_language_server-0.4.0/tests/test_project/conftest.py +31 -0
- pytest_language_server-0.4.0/tests/test_project/subdir/conftest.py +25 -0
- pytest_language_server-0.4.0/tests/test_project/subdir/test_hierarchy.py +42 -0
- pytest_language_server-0.4.0/tests/test_project/subdir/test_override.py +14 -0
- pytest_language_server-0.4.0/tests/test_project/test_parent_usage.py +23 -0
- pytest_language_server-0.3.1/src/fixtures.rs +0 -1011
- pytest_language_server-0.3.1/src/main.rs +0 -336
- pytest_language_server-0.3.1/tests/test_project/conftest.py +0 -13
- {pytest_language_server-0.3.1 → pytest_language_server-0.4.0}/.github/dependabot.yml +0 -0
- {pytest_language_server-0.3.1 → pytest_language_server-0.4.0}/.github/workflows/ci.yml +0 -0
- {pytest_language_server-0.3.1 → pytest_language_server-0.4.0}/.github/workflows/release.yml +0 -0
- {pytest_language_server-0.3.1 → pytest_language_server-0.4.0}/.github/workflows/security.yml +0 -0
- {pytest_language_server-0.3.1 → pytest_language_server-0.4.0}/.gitignore +0 -0
- {pytest_language_server-0.3.1 → pytest_language_server-0.4.0}/.pre-commit-config.yaml +0 -0
- {pytest_language_server-0.3.1 → pytest_language_server-0.4.0}/Formula/pytest-language-server.rb +0 -0
- {pytest_language_server-0.3.1 → pytest_language_server-0.4.0}/LICENSE +0 -0
- {pytest_language_server-0.3.1 → pytest_language_server-0.4.0}/RELEASE.md +0 -0
- {pytest_language_server-0.3.1 → pytest_language_server-0.4.0}/SECURITY.md +0 -0
- {pytest_language_server-0.3.1 → pytest_language_server-0.4.0}/bump-version.sh +0 -0
- {pytest_language_server-0.3.1 → pytest_language_server-0.4.0}/deny.toml +0 -0
- {pytest_language_server-0.3.1 → pytest_language_server-0.4.0}/tests/manual_test.py +0 -0
- {pytest_language_server-0.3.1 → pytest_language_server-0.4.0}/tests/test_parser_api.rs +0 -0
- {pytest_language_server-0.3.1 → pytest_language_server-0.4.0}/tests/test_project/test_example.py +0 -0
- {pytest_language_server-0.3.1 → pytest_language_server-0.4.0}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "pytest-language-server"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.4.0"
|
|
4
4
|
edition = "2021"
|
|
5
5
|
rust-version = "1.83"
|
|
6
6
|
authors = ["Thiago Bellini Ribeiro <hackedbellini@gmail.com>"]
|
|
@@ -11,6 +11,14 @@ keywords = ["pytest", "lsp", "language-server", "testing"]
|
|
|
11
11
|
categories = ["development-tools", "development-tools::testing"]
|
|
12
12
|
readme = "README.md"
|
|
13
13
|
|
|
14
|
+
[[bin]]
|
|
15
|
+
name = "pytest-language-server"
|
|
16
|
+
path = "src/main.rs"
|
|
17
|
+
|
|
18
|
+
[lib]
|
|
19
|
+
name = "pytest_language_server"
|
|
20
|
+
path = "src/lib.rs"
|
|
21
|
+
|
|
14
22
|
[dependencies]
|
|
15
23
|
tower-lsp = "0.20.0"
|
|
16
24
|
tokio = { version = "1.48", features = ["full"] }
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pytest-language-server
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Classifier: Development Status :: 4 - Beta
|
|
5
5
|
Classifier: Intended Audience :: Developers
|
|
6
6
|
Classifier: License :: OSI Approved :: MIT License
|
|
@@ -57,6 +57,8 @@ Find all usages of a fixture across your entire test suite:
|
|
|
57
57
|
- Works from fixture definitions or usage sites
|
|
58
58
|
- Character-position aware (distinguishes between fixture name and parameters)
|
|
59
59
|
- Shows references in all test files
|
|
60
|
+
- Correctly handles fixture overriding and hierarchies
|
|
61
|
+
- **LSP spec compliant**: Always includes the current position in results
|
|
60
62
|
|
|
61
63
|
### 📚 Hover Documentation
|
|
62
64
|
View fixture information on hover:
|
|
@@ -244,6 +246,31 @@ pytest-language-server correctly implements pytest's fixture shadowing rules:
|
|
|
244
246
|
2. **Closest conftest.py**: Searches parent directories for conftest.py files
|
|
245
247
|
3. **Virtual environment**: Third-party plugin fixtures
|
|
246
248
|
|
|
249
|
+
### Fixture Overriding
|
|
250
|
+
|
|
251
|
+
The LSP correctly handles complex fixture overriding scenarios:
|
|
252
|
+
|
|
253
|
+
```python
|
|
254
|
+
# conftest.py (parent)
|
|
255
|
+
@pytest.fixture
|
|
256
|
+
def cli_runner():
|
|
257
|
+
return "parent runner"
|
|
258
|
+
|
|
259
|
+
# tests/conftest.py (child)
|
|
260
|
+
@pytest.fixture
|
|
261
|
+
def cli_runner(cli_runner): # Overrides parent
|
|
262
|
+
return cli_runner # Uses parent
|
|
263
|
+
|
|
264
|
+
# tests/test_example.py
|
|
265
|
+
def test_example(cli_runner): # Uses child
|
|
266
|
+
pass
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
When using find-references:
|
|
270
|
+
- Clicking on the **function name** `def cli_runner(...)` shows references to the child fixture
|
|
271
|
+
- Clicking on the **parameter** `cli_runner(cli_runner)` shows references to the parent fixture
|
|
272
|
+
- Character-position aware to distinguish between the two
|
|
273
|
+
|
|
247
274
|
## Supported Third-Party Fixtures
|
|
248
275
|
|
|
249
276
|
Automatically discovers fixtures from popular pytest plugins:
|
|
@@ -31,6 +31,8 @@ Find all usages of a fixture across your entire test suite:
|
|
|
31
31
|
- Works from fixture definitions or usage sites
|
|
32
32
|
- Character-position aware (distinguishes between fixture name and parameters)
|
|
33
33
|
- Shows references in all test files
|
|
34
|
+
- Correctly handles fixture overriding and hierarchies
|
|
35
|
+
- **LSP spec compliant**: Always includes the current position in results
|
|
34
36
|
|
|
35
37
|
### 📚 Hover Documentation
|
|
36
38
|
View fixture information on hover:
|
|
@@ -218,6 +220,31 @@ pytest-language-server correctly implements pytest's fixture shadowing rules:
|
|
|
218
220
|
2. **Closest conftest.py**: Searches parent directories for conftest.py files
|
|
219
221
|
3. **Virtual environment**: Third-party plugin fixtures
|
|
220
222
|
|
|
223
|
+
### Fixture Overriding
|
|
224
|
+
|
|
225
|
+
The LSP correctly handles complex fixture overriding scenarios:
|
|
226
|
+
|
|
227
|
+
```python
|
|
228
|
+
# conftest.py (parent)
|
|
229
|
+
@pytest.fixture
|
|
230
|
+
def cli_runner():
|
|
231
|
+
return "parent runner"
|
|
232
|
+
|
|
233
|
+
# tests/conftest.py (child)
|
|
234
|
+
@pytest.fixture
|
|
235
|
+
def cli_runner(cli_runner): # Overrides parent
|
|
236
|
+
return cli_runner # Uses parent
|
|
237
|
+
|
|
238
|
+
# tests/test_example.py
|
|
239
|
+
def test_example(cli_runner): # Uses child
|
|
240
|
+
pass
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
When using find-references:
|
|
244
|
+
- Clicking on the **function name** `def cli_runner(...)` shows references to the child fixture
|
|
245
|
+
- Clicking on the **parameter** `cli_runner(cli_runner)` shows references to the parent fixture
|
|
246
|
+
- Character-position aware to distinguish between the two
|
|
247
|
+
|
|
221
248
|
## Supported Third-Party Fixtures
|
|
222
249
|
|
|
223
250
|
Automatically discovers fixtures from popular pytest plugins:
|
|
@@ -4,7 +4,7 @@ build-backend = "maturin"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "pytest-language-server"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.4.0"
|
|
8
8
|
description = "A blazingly fast Language Server Protocol implementation for pytest"
|
|
9
9
|
authors = [{name = "Thiago Bellini Ribeiro", email = "hackedbellini@gmail.com"}]
|
|
10
10
|
readme = "README.md"
|