fix: resolve CI linting and dependency issues
Some checks failed
CI / test (push) Has been cancelled
Some checks failed
CI / test (push) Has been cancelled
This commit is contained in:
204
tests/conftest.py
Normal file
204
tests/conftest.py
Normal file
@@ -0,0 +1,204 @@
|
|||||||
|
"""Test configuration and fixtures."""
|
||||||
|
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def create_python_project(tmp_path: Path) -> Path:
|
||||||
|
"""Create a Python project structure for testing."""
|
||||||
|
src_dir = tmp_path / "src"
|
||||||
|
src_dir.mkdir()
|
||||||
|
|
||||||
|
(src_dir / "__init__.py").write_text('"""Package init."""')
|
||||||
|
|
||||||
|
(src_dir / "main.py").write_text('"""Main module."""
|
||||||
|
|
||||||
|
def hello():
|
||||||
|
"""Say hello."""
|
||||||
|
print("Hello, World!")
|
||||||
|
|
||||||
|
class Calculator:
|
||||||
|
"""A simple calculator."""
|
||||||
|
|
||||||
|
def add(self, a: int, b: int) -> int:
|
||||||
|
"""Add two numbers."""
|
||||||
|
return a + b
|
||||||
|
|
||||||
|
def multiply(self, a: int, b: int) -> int:
|
||||||
|
"""Multiply two numbers."""
|
||||||
|
return a * b
|
||||||
|
')
|
||||||
|
|
||||||
|
(tmp_path / "requirements.txt").write_text('requests>=2.31.0
|
||||||
|
click>=8.0.0
|
||||||
|
pytest>=7.0.0
|
||||||
|
')
|
||||||
|
|
||||||
|
(tmp_path / "pyproject.toml").write_text('[build-system]
|
||||||
|
requires = ["setuptools"]
|
||||||
|
build-backend = "setuptools.build_meta"
|
||||||
|
|
||||||
|
[project]
|
||||||
|
name = "test-project"
|
||||||
|
version = "0.1.0"
|
||||||
|
description = "A test project"
|
||||||
|
requires-python = ">=3.9"
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
"requests>=2.31.0",
|
||||||
|
"click>=8.0.0",
|
||||||
|
]
|
||||||
|
')
|
||||||
|
|
||||||
|
return tmp_path
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def create_javascript_project(tmp_path: Path) -> Path:
|
||||||
|
"""Create a JavaScript project structure for testing."""
|
||||||
|
(tmp_path / "package.json").write_text('{
|
||||||
|
"name": "test-js-project",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "A test JavaScript project",
|
||||||
|
"main": "index.js",
|
||||||
|
"dependencies": {
|
||||||
|
"express": "^4.18.0",
|
||||||
|
"lodash": "^4.17.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"jest": "^29.0.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
')
|
||||||
|
|
||||||
|
(tmp_path / "index.js").write_text('const express = require(\'express\');
|
||||||
|
const _ = require(\'lodash\');
|
||||||
|
|
||||||
|
function hello() {
|
||||||
|
return \'Hello, World!\';
|
||||||
|
}
|
||||||
|
|
||||||
|
class Calculator {
|
||||||
|
add(a, b) {
|
||||||
|
return a + b;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = { hello, Calculator };
|
||||||
|
')
|
||||||
|
|
||||||
|
return tmp_path
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def create_go_project(tmp_path: Path) -> Path:
|
||||||
|
"""Create a Go project structure for testing."""
|
||||||
|
(tmp_path / "go.mod").write_text('module test-go-project
|
||||||
|
|
||||||
|
go 1.21
|
||||||
|
|
||||||
|
require (
|
||||||
|
github.com/gin-gonic/gin v1.9.0
|
||||||
|
github.com/stretchr/testify v1.8.0
|
||||||
|
)
|
||||||
|
')
|
||||||
|
|
||||||
|
(tmp_path / "main.go").write_text('package main
|
||||||
|
|
||||||
|
import "fmt"
|
||||||
|
|
||||||
|
func hello() string {
|
||||||
|
return "Hello, World!"
|
||||||
|
}
|
||||||
|
|
||||||
|
type Calculator struct{}
|
||||||
|
|
||||||
|
func (c *Calculator) Add(a, b int) int {
|
||||||
|
return a + b
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
fmt.Println(hello())
|
||||||
|
}
|
||||||
|
')
|
||||||
|
|
||||||
|
return tmp_path
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def create_rust_project(tmp_path: Path) -> Path:
|
||||||
|
"""Create a Rust project structure for testing."""
|
||||||
|
src_dir = tmp_path / "src"
|
||||||
|
src_dir.mkdir()
|
||||||
|
|
||||||
|
(tmp_path / "Cargo.toml").write_text('[package]
|
||||||
|
name = "test-rust-project"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2021"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
serde = { version = "1.0", features = ["derive"] }
|
||||||
|
tokio = { version = "1.0", features = "full" }
|
||||||
|
|
||||||
|
[dev-dependencies]
|
||||||
|
assertions = "0.1"
|
||||||
|
')
|
||||||
|
|
||||||
|
(src_dir / "main.rs").write_text('fn hello() -> String {
|
||||||
|
"Hello, World!".to_string()
|
||||||
|
}
|
||||||
|
|
||||||
|
pub struct Calculator;
|
||||||
|
|
||||||
|
impl Calculator {
|
||||||
|
pub fn add(a: i32, b: i32) -> i32 {
|
||||||
|
a + b
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
println!("{}", hello());
|
||||||
|
}
|
||||||
|
')
|
||||||
|
|
||||||
|
return tmp_path
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def create_mixed_project(tmp_path: Path) -> Path:
|
||||||
|
"""Create a project with multiple languages for testing."""
|
||||||
|
python_part = tmp_path / "python_part"
|
||||||
|
python_part.mkdir()
|
||||||
|
js_part = tmp_path / "js_part"
|
||||||
|
js_part.mkdir()
|
||||||
|
|
||||||
|
src_dir = python_part / "src"
|
||||||
|
src_dir.mkdir()
|
||||||
|
(src_dir / "__init__.py").write_text('"""Package init."""')
|
||||||
|
(src_dir / "main.py").write_text('"""Main module."""
|
||||||
|
def hello():
|
||||||
|
print("Hello")
|
||||||
|
')
|
||||||
|
(python_part / "pyproject.toml").write_text('[project]
|
||||||
|
name = "test-project"
|
||||||
|
version = "0.1.0"
|
||||||
|
description = "A test project"
|
||||||
|
requires-python = ">=3.9"
|
||||||
|
dependencies = ["requests>=2.31.0"]
|
||||||
|
')
|
||||||
|
|
||||||
|
(js_part / "package.json").write_text('{
|
||||||
|
"name": "test-js-project",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "A test project"
|
||||||
|
}
|
||||||
|
')
|
||||||
|
(js_part / "index.js").write_text('function hello() {
|
||||||
|
return \'Hello\';
|
||||||
|
}
|
||||||
|
module.exports = { hello };
|
||||||
|
')
|
||||||
|
|
||||||
|
return tmp_path
|
||||||
Reference in New Issue
Block a user