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
6 changes: 5 additions & 1 deletion tests/integration/actor/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
from filelock import FileLock

from apify_client import ApifyClient, ApifyClientAsync
from apify_shared.consts import ActorJobStatus, ActorSourceType
from apify_shared.consts import ActorJobStatus, ActorPermissionLevel, ActorSourceType

from .._utils import generate_unique_resource_name
from apify._models import ActorRun
Expand Down Expand Up @@ -280,12 +280,14 @@ def __call__(
*,
run_input: Any = None,
max_total_charge_usd: Decimal | None = None,
force_permission_level: ActorPermissionLevel | None = None,
) -> Coroutine[None, None, ActorRun]:
"""Initiate an Actor run and wait for its completion.

Args:
actor: Actor async client, in testing context usually created by `make_actor` fixture.
run_input: Optional input for the Actor run.
force_permission_level: Override the Actor's permissions for this run.

Returns:
Actor run result.
Expand All @@ -305,10 +307,12 @@ async def _run_actor(
*,
run_input: Any = None,
max_total_charge_usd: Decimal | None = None,
force_permission_level: ActorPermissionLevel | None = None,
) -> ActorRun:
call_result = await actor.call(
run_input=run_input,
max_total_charge_usd=max_total_charge_usd,
force_permission_level=force_permission_level,
)

assert isinstance(call_result, dict), 'The result of ActorClientAsync.call() is not a dictionary.'
Expand Down
10 changes: 5 additions & 5 deletions tests/integration/actor/test_actor_api_helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@
import json
from typing import TYPE_CHECKING

import pytest

from apify_shared.consts import ActorPermissionLevel
from crawlee._utils.crypto import crypto_random_object_id

from .._utils import generate_unique_resource_name
Expand Down Expand Up @@ -197,7 +196,6 @@ async def main_outer() -> None:
assert inner_output_record['value'] == f'{test_value}_XXX_{test_value}'


@pytest.mark.skip(reason='Requires Actor permissions beyond limited permissions, see #715.')
async def test_actor_calls_task(
make_actor: MakeActorFunction,
run_actor: RunActorFunction,
Expand Down Expand Up @@ -238,6 +236,7 @@ async def main_outer() -> None:
run_result_outer = await run_actor(
outer_actor,
run_input={'test_value': test_value, 'inner_task_id': task['id']},
force_permission_level=ActorPermissionLevel.FULL_PERMISSIONS,
)

assert run_result_outer.status == 'SUCCEEDED'
Expand All @@ -251,7 +250,6 @@ async def main_outer() -> None:
await apify_client_async.task(task['id']).delete()


@pytest.mark.skip(reason='Requires Actor permissions beyond limited permissions, see #715.')
async def test_actor_aborts_another_actor_run(
make_actor: MakeActorFunction,
run_actor: RunActorFunction,
Expand All @@ -274,11 +272,13 @@ async def main_outer() -> None:
inner_actor = await make_actor(label='abort-inner', main_func=main_inner)
outer_actor = await make_actor(label='abort-outer', main_func=main_outer)

inner_run_id = (await inner_actor.start())['id']
run_result_inner = await inner_actor.start(force_permission_level=ActorPermissionLevel.FULL_PERMISSIONS)
inner_run_id = run_result_inner['id']

run_result_outer = await run_actor(
outer_actor,
run_input={'inner_run_id': inner_run_id},
force_permission_level=ActorPermissionLevel.FULL_PERMISSIONS,
)

assert run_result_outer.status == 'SUCCEEDED'
Expand Down
4 changes: 2 additions & 2 deletions tests/integration/actor/test_actor_scrapy.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,12 @@
from pathlib import Path
from typing import TYPE_CHECKING

import pytest
from apify_shared.consts import ActorPermissionLevel

if TYPE_CHECKING:
from .conftest import MakeActorFunction, RunActorFunction


@pytest.mark.skip(reason='Requires Actor permissions beyond limited permissions, see #715.')
async def test_actor_scrapy_title_spider(
make_actor: MakeActorFunction,
run_actor: RunActorFunction,
Expand Down Expand Up @@ -38,6 +37,7 @@ async def test_actor_scrapy_title_spider(
'allowedDomains': ['crawlee.dev'],
'proxyConfiguration': {'useApifyProxy': True},
},
force_permission_level=ActorPermissionLevel.FULL_PERMISSIONS,
)

assert run_result.status == 'SUCCEEDED'
Expand Down
6 changes: 3 additions & 3 deletions uv.lock

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