mirror of
https://github.com/gmbrax/Pilgrim.git
synced 2026-11-10 07:10:17 +00:00
Compare commits
3
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
765ebf943d | ||
|
|
8f36e5a770 | ||
|
|
11e9cf6e75 |
@@ -0,0 +1,24 @@
|
|||||||
|
name: Pylint
|
||||||
|
|
||||||
|
on: [push]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
python-version: ["3.10"]
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Set up Python ${{ matrix.python-version }}
|
||||||
|
uses: actions/setup-python@v3
|
||||||
|
with:
|
||||||
|
python-version: ${{ matrix.python-version }}
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
python -m pip install --upgrade pip
|
||||||
|
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
|
||||||
|
pip install pylint
|
||||||
|
- name: Analysing the code with pylint
|
||||||
|
run: |
|
||||||
|
pylint --disable=C0114,C0115,C0116 --exit-zero $(git ls-files '*.py')
|
||||||
@@ -1,63 +0,0 @@
|
|||||||
name: Pylint and SonarCloud
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [ main, master, staging ]
|
|
||||||
pull_request:
|
|
||||||
branches: [ main, master, staging ]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
python-version: ["3.10"]
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
fetch-depth: 0 # Necessário para SonarCloud
|
|
||||||
|
|
||||||
- name: Set up Python ${{ matrix.python-version }}
|
|
||||||
uses: actions/setup-python@v4
|
|
||||||
with:
|
|
||||||
python-version: ${{ matrix.python-version }}
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: |
|
|
||||||
python -m pip install --upgrade pip
|
|
||||||
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
|
|
||||||
pip install pylint ruff coverage pytest
|
|
||||||
|
|
||||||
- name: Analysing the code with pylint (console output)
|
|
||||||
run: |
|
|
||||||
pylint --disable=C0114,C0115,C0116 --exit-zero $(git ls-files '*.py') || true
|
|
||||||
|
|
||||||
- name: Generate Pylint report for SonarCloud
|
|
||||||
run: |
|
|
||||||
pylint --disable=C0114,C0115,C0116 --output-format=json --exit-zero $(git ls-files '*.py') > pylint-report.json || true
|
|
||||||
|
|
||||||
- name: Run Ruff
|
|
||||||
run: |
|
|
||||||
ruff check --output-format=json . > ruff-report.json || true
|
|
||||||
|
|
||||||
- name: Run tests with coverage (if you have tests)
|
|
||||||
run: |
|
|
||||||
if [ -d "tests" ] || [ -f "test_*.py" ] || [ -f "*_test.py" ]; then
|
|
||||||
coverage run -m pytest || true
|
|
||||||
coverage xml || true
|
|
||||||
else
|
|
||||||
echo "No tests found, skipping coverage"
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: SonarCloud Scan
|
|
||||||
uses: SonarSource/sonarqube-scan-action@v5.0.0
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
|
||||||
with:
|
|
||||||
args: >
|
|
||||||
-Dsonar.projectKey=gmbrax_Pilgrim
|
|
||||||
-Dsonar.organization=gmbrax
|
|
||||||
-Dsonar.python.pylint.reportPaths=pylint-report.json
|
|
||||||
-Dsonar.python.ruff.reportPaths=ruff-report.json
|
|
||||||
-Dsonar.python.coverage.reportPaths=coverage.xml
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
import pytest
|
|
||||||
from unittest.mock import Mock # A ferramenta para criar nosso "dublê"
|
|
||||||
from pathlib import Path
|
|
||||||
from sqlalchemy import inspect, Column, Integer, String
|
|
||||||
from sqlalchemy.orm import Session
|
|
||||||
|
|
||||||
from pilgrim.database import Database,Base
|
|
||||||
|
|
||||||
class MockUser(Base):
|
|
||||||
__tablename__ = 'mock_users'
|
|
||||||
id = Column(Integer, primary_key=True)
|
|
||||||
name = Column(String)
|
|
||||||
|
|
||||||
@pytest.fixture
|
|
||||||
def db_instance(tmp_path: Path):
|
|
||||||
fake_db_path = tmp_path / "test_pilgrim.db"
|
|
||||||
mock_config_manager = Mock()
|
|
||||||
mock_config_manager.database_url = str(fake_db_path)
|
|
||||||
db = Database(mock_config_manager)
|
|
||||||
return db, fake_db_path
|
|
||||||
|
|
||||||
def test_create_database(db_instance):
|
|
||||||
db, fake_db_path = db_instance
|
|
||||||
db.create()
|
|
||||||
assert fake_db_path.exists()
|
|
||||||
|
|
||||||
def test_table_creation(db_instance):
|
|
||||||
db, _ = db_instance
|
|
||||||
db.create()
|
|
||||||
inspector = inspect(db.engine)
|
|
||||||
assert "mock_users" in inspector.get_table_names()
|
|
||||||
|
|
||||||
def test_session_returned_corectly(db_instance):
|
|
||||||
db, _ = db_instance
|
|
||||||
session = db.session()
|
|
||||||
assert isinstance(session, Session)
|
|
||||||
session.close()
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user