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
2 changes: 1 addition & 1 deletion .github/workflows/checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
test:
strategy:
matrix:
python: [ "3.8", "3.9", "3.10", "3.11", "3.12" ]
python: [ "3.8", "3.9", "3.10", "3.11", "3.12", "3.13" ]
os: [ ubuntu-latest, macos-latest, windows-latest ]
runs-on: ${{ matrix.os }}
steps:
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ generate = "python scripts/generate.py"
format = "ruff format ."
isort = "ruff check --select I . --fix"
mypy = "mypy ."
ruff = "ruff check src"
ruff = "ruff check src tests --extend-exclude tests/models"
safety = "poetry export -f requirements.txt | safety check --bare --stdin"
test = "pytest tests"
check = "task isort && task format && task mypy && task ruff && task test && task safety"
Expand Down
6 changes: 4 additions & 2 deletions tests/config/test_config.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
from __future__ import annotations

import argparse
from pathlib import Path
from typing import MutableMapping
from typing import TYPE_CHECKING, MutableMapping

import pytest

from binarylane.config import DefaultConfig, OptionName, UserConfig
from binarylane.config.sources import CommandlineSource, DefaultSource, EnvironmentSource, FileSource

if TYPE_CHECKING:
from pathlib import Path


def test_default_values() -> None:
config = DefaultConfig()
Expand Down
6 changes: 4 additions & 2 deletions tests/config/test_repository.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
from __future__ import annotations

from argparse import Namespace
from pathlib import Path
from typing import MutableMapping, Optional
from typing import TYPE_CHECKING, MutableMapping, Optional

import pytest

from binarylane.config import OptionName, Repository
from binarylane.config.sources import CommandlineSource, DefaultSource, EnvironmentSource, FileSource, RuntimeSource

if TYPE_CHECKING:
from pathlib import Path


def test_init_default_source() -> None:
repo = Repository()
Expand Down
6 changes: 4 additions & 2 deletions tests/config/test_sources.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
from __future__ import annotations

import argparse
from pathlib import Path
from typing import MutableMapping
from typing import TYPE_CHECKING, MutableMapping

from binarylane.config import OptionName
from binarylane.config.sources import CommandlineSource, DefaultSource, EnvironmentSource, FileSource, RuntimeSource

if TYPE_CHECKING:
from pathlib import Path


def test_commandline_get() -> None:
parser = argparse.ArgumentParser()
Expand Down
6 changes: 5 additions & 1 deletion tests/integration/conftest.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
from __future__ import annotations

from typing import TYPE_CHECKING

import pytest

from binarylane.console.app import App
from binarylane.console.runners import Context

if TYPE_CHECKING:
from binarylane.console.runners import Context


class AppWithContext(App):
Expand Down
8 changes: 6 additions & 2 deletions tests/integration/test_app.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
from __future__ import annotations

from typing import TYPE_CHECKING

import pytest
from _pytest.capture import CaptureFixture

from tests.integration.conftest import App, AppWithContext
if TYPE_CHECKING:
from _pytest.capture import CaptureFixture

from tests.integration.conftest import App, AppWithContext


def test_app_program_name(app: App, capsys: CaptureFixture[str]) -> None:
Expand Down
5 changes: 4 additions & 1 deletion tests/integration/test_curl.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
from __future__ import annotations

from _pytest.capture import CaptureFixture
from typing import TYPE_CHECKING

from tests.runner import TypeRunner

from binarylane.console.commands.api import get_v2_sizes as size_list
from binarylane.console.runners.command import CommandRunner

if TYPE_CHECKING:
from _pytest.capture import CaptureFixture


def test_curl_size_list(capsys: CaptureFixture[str]) -> None:
runner = TypeRunner[CommandRunner](size_list.Command)
Expand Down
7 changes: 5 additions & 2 deletions tests/integration/test_help.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
from __future__ import annotations

from typing import TYPE_CHECKING

import pytest
from pytest import CaptureFixture

from tests.integration.conftest import App

from binarylane.console.metadata import program_description

if TYPE_CHECKING:
from tests.integration.conftest import App


def test_app_root_help(app: App, capsys: CaptureFixture[str]) -> None:
with pytest.raises(SystemExit):
Expand Down
6 changes: 5 additions & 1 deletion tests/integration/test_list.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
from __future__ import annotations

from typing import TYPE_CHECKING

import pytest
from _pytest.capture import CaptureFixture

from tests.runner import TypeRunner

from binarylane.console.commands.api import get_v2_sizes as size_list
from binarylane.console.runners.command import CommandRunner

if TYPE_CHECKING:
from _pytest.capture import CaptureFixture


def test_list_invalid_format_value(capsys: CaptureFixture[str]) -> None:
runner = TypeRunner[CommandRunner](size_list.Command)
Expand Down
6 changes: 5 additions & 1 deletion tests/integration/test_output_json.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
from __future__ import annotations

from typing import TYPE_CHECKING

import pytest
from _pytest.capture import CaptureFixture

from binarylane.models.meta import Meta
from binarylane.models.route_entry import RouteEntry
Expand All @@ -13,6 +14,9 @@
from binarylane.console.runners.command import CommandRunner
from binarylane.console.runners.list import ListRunner

if TYPE_CHECKING:
from _pytest.capture import CaptureFixture


@pytest.fixture
def vpc() -> Vpc:
Expand Down
5 changes: 4 additions & 1 deletion tests/integration/test_version.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
from __future__ import annotations

from _pytest.capture import CaptureFixture
from typing import TYPE_CHECKING

from binarylane.console.app import App

if TYPE_CHECKING:
from _pytest.capture import CaptureFixture


def test_version(capsys: CaptureFixture[str]) -> None:
runner = App()
Expand Down
2 changes: 1 addition & 1 deletion tests/models/links.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from __future__ import annotations

from typing import Any, Dict, List, Type, TypeVar
from typing import Any, Dict

import attr

Expand Down
2 changes: 1 addition & 1 deletion tests/models/network.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from __future__ import annotations

from typing import Any, Dict, List, Union
from typing import Any, Dict, Union

import attr

Expand Down
2 changes: 1 addition & 1 deletion tests/models/server.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from __future__ import annotations

import datetime
from typing import Any, Dict, List, Union
from typing import Any, Dict, List

import attr

Expand Down
2 changes: 1 addition & 1 deletion tests/parser/test_enum.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ def test_single_value_enum_does_not_require_configuration() -> None:
assert parser.parse([]).mapped_object.to_dict() == {"type": "ping"}

# It is not a valid
with pytest.raises(ArgumentError) as exc:
with pytest.raises(ArgumentError):
parser.parse(["--type", "ping"])


Expand Down
6 changes: 4 additions & 2 deletions tests/printers/test_formatter.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
from __future__ import annotations

from typing import Any, Dict, List
from typing import TYPE_CHECKING, Any, Dict, List

from tests.models.network import Network
from tests.models.network_type import NetworkType
from tests.models.servers_response import ServersResponse

from binarylane.console.printers import formatter

if TYPE_CHECKING:
from tests.models.servers_response import ServersResponse


def test_format_str() -> None:
assert formatter.format_response("test", True) == [[formatter.DEFAULT_HEADING], ["test"]]
Expand Down
13 changes: 8 additions & 5 deletions tests/runners/test_action_runner.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,19 @@
from __future__ import annotations

from http import HTTPStatus
from typing import Tuple
from typing import TYPE_CHECKING, Tuple

from pytest import CaptureFixture

from binarylane.client import Client
from tests.runner import TypeRunner

from binarylane.console.parser.object_attribute import Mapping
from binarylane.console.runners import action

if TYPE_CHECKING:
from http import HTTPStatus

from pytest import CaptureFixture

from binarylane.client import Client


class ActionRunner(action.ActionRunner):
def create_mapping(self) -> Mapping:
Expand Down
13 changes: 8 additions & 5 deletions tests/runners/test_actionlink_runner.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,19 @@
from __future__ import annotations

from http import HTTPStatus
from typing import Tuple
from typing import TYPE_CHECKING, Tuple

from pytest import CaptureFixture

from binarylane.client import Client
from tests.runner import TypeRunner

from binarylane.console.parser.object_attribute import Mapping
from binarylane.console.runners import actionlink

if TYPE_CHECKING:
from http import HTTPStatus

from pytest import CaptureFixture

from binarylane.client import Client


class ActionLinkRunner(actionlink.ActionLinkRunner):
def create_mapping(self) -> Mapping:
Expand Down
14 changes: 9 additions & 5 deletions tests/runners/test_command_runner.py
Original file line number Diff line number Diff line change
@@ -1,19 +1,23 @@
from __future__ import annotations

from http import HTTPStatus
from typing import Tuple
from typing import TYPE_CHECKING, Tuple

import pytest
from _pytest.capture import CaptureFixture

from binarylane.client import Client
from binarylane.models.problem_details import ProblemDetails
from binarylane.models.validation_problem_details import ValidationProblemDetails
from tests.runner import TypeRunner

from binarylane.console.parser import Mapping, Namespace
from binarylane.console.parser import Mapping
from binarylane.console.runners import command

if TYPE_CHECKING:
from http import HTTPStatus

from _pytest.capture import CaptureFixture

from binarylane.client import Client


class CommandRunner(command.CommandRunner):
def create_mapping(self) -> Mapping:
Expand Down
10 changes: 6 additions & 4 deletions tests/runners/test_list.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
from __future__ import annotations

from http import HTTPStatus
from typing import Dict, List, Tuple
from typing import TYPE_CHECKING, Dict, List, Tuple

import pytest

from binarylane.client import Client

from binarylane.console.parser import Mapping
from binarylane.console.runners import Context
from binarylane.console.runners import list as list_runner

if TYPE_CHECKING:
from http import HTTPStatus

from binarylane.client import Client


class ListRunner(list_runner.ListRunner):
default_format_property: List[str]
Expand Down
Loading