Skip to content

Commit effd5d4

Browse files
committed
fix asyncmock and atomic planner test
1 parent 54dd264 commit effd5d4

5 files changed

Lines changed: 14 additions & 18 deletions

File tree

tests/__init__.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +0,0 @@
1-
from unittest.mock import MagicMock
2-
3-
4-
class AsyncMock(MagicMock):
5-
async def __call__(self, *args, **kwargs):
6-
return super(AsyncMock, self).__call__(*args, **kwargs)

tests/conftest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
from datetime import datetime, timezone
1414
from base64 import b64encode
1515
from unittest import mock
16+
from unittest.mock import AsyncMock
1617
from aiohttp_apispec import validation_middleware
1718
from aiohttp import web
1819
import aiohttp_jinja2
@@ -64,7 +65,6 @@
6465
from app.api.rest_api import RestApi
6566

6667
from app import version
67-
from tests import AsyncMock
6868

6969
DIR = os.path.dirname(os.path.abspath(__file__))
7070
CONFIG_DIR = os.path.join(DIR, '..', 'conf')

tests/planners/test_atomic.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11

2-
from tests import AsyncMock
3-
42
import pytest
3+
from unittest.mock import AsyncMock
54

65
from app.planners.atomic import LogicalPlanner
76

@@ -15,7 +14,10 @@ def __init__(self):
1514
self.adversary = AdversaryStub()
1615
self.agents = ['agent_1']
1716
self.wait_for_links_completion = AsyncMock()
18-
self.apply = AsyncMock()
17+
self.apply = AsyncMock(side_effect=self._apply_side_effect)
18+
19+
def _apply_side_effect(self, value):
20+
return value.id
1921

2022

2123
class PlanningSvcStub():
@@ -34,9 +36,10 @@ def __init__(self, ability_id):
3436
class LinkStub():
3537
def __init__(self, ability_id):
3638
self.ability = AbilityStub(ability_id)
39+
self.id = 'link_' + ability_id
3740

3841
def __eq__(self, other):
39-
return self.ability.ability_id == other.ability.ability_id
42+
return self.ability.ability_id == other.ability.ability_id and self.id == other.id
4043

4144

4245
@pytest.fixture
@@ -64,8 +67,8 @@ def test_atomic_with_links_in_order(self, event_loop, atomic_planner):
6467

6568
assert atomic_planner.operation.apply.call_count == 1
6669
assert atomic_planner.operation.wait_for_links_completion.call_count == 1
67-
atomic_planner.operation.apply.assert_called_with(LinkStub('ability_b'))
68-
atomic_planner.operation.wait_for_links_completion.assert_called_with([LinkStub('ability_b')])
70+
atomic_planner.operation.apply.assert_awaited_with(LinkStub('ability_b'))
71+
atomic_planner.operation.wait_for_links_completion.assert_awaited_with(['link_ability_b'])
6972

7073
def test_atomic_with_links_out_of_order(self, event_loop, atomic_planner):
7174

@@ -80,8 +83,8 @@ def test_atomic_with_links_out_of_order(self, event_loop, atomic_planner):
8083

8184
assert atomic_planner.operation.apply.call_count == 1
8285
assert atomic_planner.operation.wait_for_links_completion.call_count == 1
83-
atomic_planner.operation.apply.assert_called_with(LinkStub('ability_b'))
84-
atomic_planner.operation.wait_for_links_completion.assert_called_with([LinkStub('ability_b')])
86+
atomic_planner.operation.apply.assert_awaited_with(LinkStub('ability_b'))
87+
atomic_planner.operation.wait_for_links_completion.assert_awaited_with(['link_ability_b'])
8588

8689
def test_atomic_no_links(self, event_loop, atomic_planner):
8790

tests/services/test_file_svc.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
import yaml
66

77
from base64 import b64encode
8-
from tests import AsyncMock
98
from asyncio import Future
9+
from unittest.mock import AsyncMock
1010

1111
from app.data_encoders.base64_basic import Base64Encoder
1212
from app.data_encoders.plain_text import PlainTextEncoder

tests/services/test_planning_svc.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import pytest
22
import asyncio
33
import base64
4-
from unittest.mock import MagicMock
4+
from unittest.mock import MagicMock, AsyncMock
55

66
from app.objects.c_adversary import Adversary
77
from app.objects.c_obfuscator import Obfuscator
@@ -11,7 +11,6 @@
1111
from app.objects.secondclass.c_fact import Fact
1212
from app.objects.secondclass.c_requirement import Requirement
1313
from app.utility.base_world import BaseWorld
14-
from tests import AsyncMock
1514

1615

1716
stop_bucket_exhaustion_params = [

0 commit comments

Comments
 (0)