1
0
mirror of https://github.com/ihabunek/toot synced 2024-12-23 07:27:12 +01:00

Extend instance tests

This commit is contained in:
Ivan Habunek 2023-11-30 20:08:59 +01:00
parent 6c9b939175
commit e5c8fc4f77
No known key found for this signature in database
GPG Key ID: CDBD63C43A30BB95
2 changed files with 16 additions and 10 deletions

View File

@ -24,9 +24,6 @@ from click.testing import CliRunner, Result
from pathlib import Path from pathlib import Path
from toot import api, App, User from toot import api, App, User
from toot.cli import Context from toot.cli import Context
from toot.console import run_command
from toot.exceptions import ApiError, ConsoleError
from toot.output import print_out
def pytest_configure(config): def pytest_configure(config):
@ -36,6 +33,7 @@ def pytest_configure(config):
# Mastodon database name, used to confirm user registration without having to click the link # Mastodon database name, used to confirm user registration without having to click the link
DATABASE_DSN = os.getenv("TOOT_TEST_DATABASE_DSN") DATABASE_DSN = os.getenv("TOOT_TEST_DATABASE_DSN")
TOOT_TEST_BASE_URL = os.getenv("TOOT_TEST_BASE_URL")
# Toot logo used for testing image upload # Toot logo used for testing image upload
TRUMPET = str(Path(__file__).parent.parent.parent / "trumpet.png") TRUMPET = str(Path(__file__).parent.parent.parent / "trumpet.png")
@ -74,12 +72,10 @@ def confirm_user(email):
# DO NOT USE PUBLIC INSTANCES!!! # DO NOT USE PUBLIC INSTANCES!!!
@pytest.fixture(scope="session") @pytest.fixture(scope="session")
def base_url(): def base_url():
base_url = os.getenv("TOOT_TEST_BASE_URL") if not TOOT_TEST_BASE_URL:
if not base_url:
pytest.skip("Skipping integration tests, TOOT_TEST_BASE_URL not set") pytest.skip("Skipping integration tests, TOOT_TEST_BASE_URL not set")
return base_url return TOOT_TEST_BASE_URL
@pytest.fixture(scope="session") @pytest.fixture(scope="session")
@ -119,9 +115,9 @@ def runner():
@pytest.fixture @pytest.fixture
def run(app, user, runner): def run(app, user, runner):
def _run(command, *params, as_user=None) -> Result: def _run(command, *params, as_user=None, input=None) -> Result:
ctx = Context(app, as_user or user) ctx = Context(app, as_user or user)
return runner.invoke(command, params, obj=ctx) return runner.invoke(command, params, obj=ctx, input=input)
return _run return _run

View File

@ -1,12 +1,13 @@
import json import json
import re import re
from tests.integration.conftest import TOOT_TEST_BASE_URL
from toot import api, cli from toot import api, cli
from toot.entities import Account, Status, from_dict, from_dict_list from toot.entities import Account, Status, from_dict, from_dict_list
from uuid import uuid4 from uuid import uuid4
def test_instance(app, run): def test_instance_default(app, run):
result = run(cli.instance) result = run(cli.instance)
assert result.exit_code == 0 assert result.exit_code == 0
@ -15,6 +16,15 @@ def test_instance(app, run):
assert "running Mastodon" in result.stdout assert "running Mastodon" in result.stdout
def test_instance_with_url(app, run):
result = run(cli.instance, TOOT_TEST_BASE_URL)
assert result.exit_code == 0
assert "Mastodon" in result.stdout
assert app.instance in result.stdout
assert "running Mastodon" in result.stdout
def test_instance_json(app, run): def test_instance_json(app, run):
result = run(cli.instance, "--json") result = run(cli.instance, "--json")
assert result.exit_code == 0 assert result.exit_code == 0