Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
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=None if force_permission_level is None else force_permission_level.value,
)

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
Loading