Skip to content

chore(deps): bump cryptography from 48.0.0 to 48.0.1 #232

chore(deps): bump cryptography from 48.0.0 to 48.0.1

chore(deps): bump cryptography from 48.0.0 to 48.0.1 #232

Workflow file for this run

name: Test
on:
push:
branches: [master]
pull_request:
branches: [master]
jobs:
# Verify libadwaita 1.1 compatibility (Ubuntu 22.04)
import-check:
name: Verify libadwaita 1.1 compatibility
permissions:
contents: read
runs-on: ubuntu-22.04
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
python3-gi \
python3-gi-cairo \
gir1.2-gtk-4.0 \
gir1.2-adw-1 \
xvfb
- name: Verify all modules import cleanly
run: |
xvfb-run -a python3 -c "
# This verifies no AttributeError on missing Adw widgets
import gi
gi.require_version('Gtk', '4.0')
gi.require_version('Adw', '1')
from gi.repository import Gtk, Adw
# Import all UI modules that use Adw widgets
import sys; sys.path.insert(0, '.')
from src.ui.preferences.base import create_password_entry_row, create_spin_row
from src.ui.preferences.virustotal_page import VirusTotalPage
from src.ui.preferences.database_page import DatabasePage
from src.ui.preferences.onaccess_page import OnAccessPage
from src.ui.preferences.scanner_page import ScannerPage
from src.ui.preferences.scheduled_page import ScheduledPage
from src.ui.virustotal_setup_dialog import VirusTotalSetupDialog
print('All modules imported successfully with libadwaita', end=' ')
print(f'{Adw.MAJOR_VERSION}.{Adw.MINOR_VERSION}.{Adw.MICRO_VERSION}')
"
test:
permissions:
contents: read
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
python-version: ["3.11", "3.12", "3.13"]
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
python3-gi \
python3-gi-cairo \
gir1.2-gtk-4.0 \
gir1.2-adw-1 \
libgirepository-2.0-dev \
libcairo2-dev \
pkg-config \
python3-dev \
xvfb
- name: Install uv
uses: astral-sh/setup-uv@v7
- name: Install Python dependencies
run: uv sync --dev
- name: Run tests with coverage
env:
HYPOTHESIS_PROFILE: ci
run: |
xvfb-run -a uv run pytest tests/core tests/ui tests/integration tests/profiles tests/property \
--ignore=tests/e2e \
--cov=src \
--cov-report=term-missing \
--cov-report=xml \
-v
- name: Upload coverage report
uses: actions/upload-artifact@v6
if: matrix.python-version == '3.12'
with:
name: coverage-report
path: coverage.xml
retention-days: 30
- name: Check coverage threshold
if: matrix.python-version == '3.12'
run: |
# Extract coverage percentage from XML report
COVERAGE=$(uv run python -c "
import xml.etree.ElementTree as ET
tree = ET.parse('coverage.xml')
root = tree.getroot()
line_rate = float(root.get('line-rate', 0))
print(f'{line_rate * 100:.1f}')
")
echo "Coverage: ${COVERAGE}%"
# The pyproject.toml fail_under=50 handles the threshold check
# This just provides visibility in the logs