Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ dependencies = [
"rich>=14.0.0",
]

[project.scripts]
pyarinc424 = "pyarinc424.main:main"

[dependency-groups]
dev = [
"pytest>=7.0.0",
Expand All @@ -17,7 +20,7 @@ dev = [

[tool.pytest.ini_options]
pythonpath = [
"src"
"src/pyarinc424",
]

[build-system]
Expand Down
Empty file added src/pyarinc424/__init__.py
Empty file.
4 changes: 2 additions & 2 deletions src/arinc.py → src/pyarinc424/arinc.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from rich.progress import track
from database import DbConfig
from record_maps import record_maps
from pyarinc424.database import DbConfig
from pyarinc424.record_maps import record_maps


class ArincRecord:
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion src/database.py → src/pyarinc424/database.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import psycopg2 # type: ignore
import sqlite3
from typing import Protocol, Generator
from config import UserConfigs
from pyarinc424.config import UserConfigs


class DbConfig(Protocol): # pragma: no cover
Expand Down
8 changes: 5 additions & 3 deletions src/main.py → src/pyarinc424/main.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
from arinc import ArincParser
from config import UserConfigs
from database import DbConfig, get_db
from pyarinc424.arinc import ArincParser
from pyarinc424.config import UserConfigs
from pyarinc424.database import DbConfig, get_db
import sys


def main() -> None:
if len(sys.argv) > 1:
kwargs = {"config_file": sys.argv[1]}
else:
kwargs = {}

configs: UserConfigs = UserConfigs(**kwargs)

Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion tests/test_arinc.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import os
import tempfile

import arinc # type: ignore
from pyarinc424 import arinc # type: ignore


class MockDbConfig:
Expand Down
2 changes: 1 addition & 1 deletion tests/test_config.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import pytest
from unittest import mock
import configparser
from config import UserConfigs, validate # type: ignore
from pyarinc424.config import UserConfigs, validate # type: ignore


class TestValidate:
Expand Down
2 changes: 1 addition & 1 deletion tests/test_database.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import pytest
from unittest.mock import MagicMock, patch
from database import PostgresDb, SqliteDb, get_db # type: ignore
from pyarinc424.database import PostgresDb, SqliteDb, get_db # type: ignore


class MockConfigs:
Expand Down
26 changes: 26 additions & 0 deletions tests/test_main.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from unittest.mock import MagicMock, patch
import pytest


def test_main_success():
Expand Down Expand Up @@ -34,3 +35,28 @@ def test_main_success():
mock_parser_class.assert_called_once_with(dummy_db, dummy_config.file_loc)

dummy_parser.parse.assert_called_once()


def test_main_success_config_arg():
dummy_config = MagicMock(name="dummy_config")

dummy_db = MagicMock(name="dummy_db")
dummy_context = MagicMock(name="dummy_context")
dummy_db.connect.return_value = dummy_context
dummy_context.__enter__.return_value = None
dummy_context.__exit__.return_value = None

dummy_parser = MagicMock(name="dummy_parser")

with (
patch("main.UserConfigs", return_value=dummy_config) as mock_configs,
patch("main.get_db", return_value=dummy_db) as mock_get_db,
patch("main.ArincParser", return_value=dummy_parser) as mock_parser_class,
patch("sys.argv", ["main.py"]) as mock_argv,
):

import main # type: ignore

main.main()

mock_configs.assert_called_once_with()
3 changes: 1 addition & 2 deletions uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.