Skip to content

Commit 7adb5a1

Browse files
author
Sergio García Prado
committed
ISSUE #98
* Remove tests code duplication.
1 parent 906b937 commit 7adb5a1

File tree

48 files changed

+808
-735
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+808
-735
lines changed
Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1-
from .event_repository import (
1+
from .events import (
22
EventRepositoryTestCase,
3+
MockedEventDatabaseOperationFactory,
34
)
4-
from .snapshot_repository import (
5+
from .snapshots import (
6+
MockedSnapshotDatabaseOperationFactory,
57
SnapshotRepositoryTestCase,
68
)
7-
from .transaction_repository import (
9+
from .transactions import (
10+
MockedTransactionDatabaseOperationFactory,
811
TransactionRepositoryTestCase,
912
)
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
from .repositories import (
2+
EventRepositoryTestCase,
3+
MockedEventDatabaseOperationFactory,
4+
)
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
from .factories import (
2+
MockedEventDatabaseOperationFactory,
3+
)
4+
from .testcases import (
5+
EventRepositoryTestCase,
6+
)
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
from datetime import (
2+
datetime,
3+
)
4+
from typing import (
5+
Optional,
6+
)
7+
from uuid import (
8+
UUID,
9+
)
10+
11+
from minos.common import (
12+
DatabaseOperation,
13+
)
14+
from minos.common.testing import (
15+
MockedDatabaseClient,
16+
MockedDatabaseOperation,
17+
)
18+
19+
from ....actions import (
20+
Action,
21+
)
22+
from ....events import (
23+
EventDatabaseOperationFactory,
24+
)
25+
26+
27+
class MockedEventDatabaseOperationFactory(EventDatabaseOperationFactory):
28+
"""For testing purposes."""
29+
30+
def build_create(self) -> DatabaseOperation:
31+
"""For testing purposes."""
32+
return MockedDatabaseOperation("create")
33+
34+
def build_submit(
35+
self,
36+
transaction_uuids: tuple[UUID],
37+
uuid: UUID,
38+
action: Action,
39+
name: str,
40+
version: int,
41+
data: bytes,
42+
created_at: datetime,
43+
transaction_uuid: UUID,
44+
lock: Optional[int],
45+
**kwargs,
46+
) -> DatabaseOperation:
47+
"""For testing purposes."""
48+
return MockedDatabaseOperation("submit")
49+
50+
def build_query(
51+
self,
52+
uuid: Optional[UUID] = None,
53+
name: Optional[str] = None,
54+
version: Optional[int] = None,
55+
version_lt: Optional[int] = None,
56+
version_gt: Optional[int] = None,
57+
version_le: Optional[int] = None,
58+
version_ge: Optional[int] = None,
59+
id: Optional[int] = None,
60+
id_lt: Optional[int] = None,
61+
id_gt: Optional[int] = None,
62+
id_le: Optional[int] = None,
63+
id_ge: Optional[int] = None,
64+
transaction_uuid: Optional[UUID] = None,
65+
transaction_uuid_ne: Optional[UUID] = None,
66+
transaction_uuid_in: Optional[tuple[UUID, ...]] = None,
67+
**kwargs,
68+
) -> DatabaseOperation:
69+
"""For testing purposes."""
70+
return MockedDatabaseOperation("select_rows")
71+
72+
def build_query_offset(self) -> DatabaseOperation:
73+
"""For testing purposes."""
74+
return MockedDatabaseOperation("select_max_id")
75+
76+
77+
MockedDatabaseClient.set_factory(EventDatabaseOperationFactory, MockedEventDatabaseOperationFactory)
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
from .repositories import (
2+
MockedSnapshotDatabaseOperationFactory,
3+
SnapshotRepositoryTestCase,
4+
)
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
from .factories import (
2+
MockedSnapshotDatabaseOperationFactory,
3+
)
4+
from .testcases import (
5+
SnapshotRepositoryTestCase,
6+
)
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
from collections.abc import (
2+
Iterable,
3+
)
4+
from datetime import (
5+
datetime,
6+
)
7+
from typing import (
8+
Any,
9+
Optional,
10+
)
11+
from uuid import (
12+
UUID,
13+
)
14+
15+
from minos.common import (
16+
DatabaseOperation,
17+
)
18+
from minos.common.testing import (
19+
MockedDatabaseClient,
20+
MockedDatabaseOperation,
21+
)
22+
23+
from ....queries import (
24+
_Condition,
25+
_Ordering,
26+
)
27+
from ....snapshots import (
28+
SnapshotDatabaseOperationFactory,
29+
)
30+
31+
32+
class MockedSnapshotDatabaseOperationFactory(SnapshotDatabaseOperationFactory):
33+
"""For testing purposes."""
34+
35+
def build_create(self) -> DatabaseOperation:
36+
"""For testing purposes."""
37+
return MockedDatabaseOperation("create")
38+
39+
def build_delete(self, transaction_uuids: Iterable[UUID]) -> DatabaseOperation:
40+
"""For testing purposes."""
41+
return MockedDatabaseOperation("delete")
42+
43+
def build_submit(
44+
self,
45+
uuid: UUID,
46+
name: str,
47+
version: int,
48+
schema: bytes,
49+
data: dict[str, Any],
50+
created_at: datetime,
51+
updated_at: datetime,
52+
transaction_uuid: UUID,
53+
) -> DatabaseOperation:
54+
"""For testing purposes."""
55+
return MockedDatabaseOperation("insert")
56+
57+
def build_query(
58+
self,
59+
name: str,
60+
condition: _Condition,
61+
ordering: Optional[_Ordering],
62+
limit: Optional[int],
63+
transaction_uuids: tuple[UUID, ...],
64+
exclude_deleted: bool,
65+
) -> DatabaseOperation:
66+
"""For testing purposes."""
67+
return MockedDatabaseOperation("query")
68+
69+
def build_submit_offset(self, value: int) -> DatabaseOperation:
70+
"""For testing purposes."""
71+
return MockedDatabaseOperation("store_offset")
72+
73+
def build_query_offset(self) -> DatabaseOperation:
74+
"""For testing purposes."""
75+
return MockedDatabaseOperation("get_offset")
76+
77+
78+
MockedDatabaseClient.set_factory(SnapshotDatabaseOperationFactory, MockedSnapshotDatabaseOperationFactory)

0 commit comments

Comments
 (0)