lsrestclient 1.1.0__tar.gz → 1.2.0__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lsrestclient
3
- Version: 1.1.0
3
+ Version: 1.2.0
4
4
  Summary: REST Api Client
5
5
  Author: mba
6
6
  Author-email: bartel@electronic-shop.lu
@@ -71,8 +71,8 @@ class LsRestClient(Session):
71
71
  self._clients[name] = self
72
72
 
73
73
  @staticmethod
74
- def mock_name(method: str, url: str) -> str:
75
- return f"{method.upper()}_{url}"
74
+ def mock_name(client_name: str, method: str, url: str) -> str:
75
+ return f"{client_name}_{method.upper()}_{url}"
76
76
 
77
77
  def full_url(
78
78
  self,
@@ -99,7 +99,7 @@ class LsRestClient(Session):
99
99
 
100
100
  def caller(self, method: str, url: str, *args, **kwargs) -> LsRestClientResponse:
101
101
  # check mocks
102
- mock = self._mocks.get(self.mock_name(method, url), None)
102
+ mock = self._mocks.get(self.mock_name(self.name, method, url), None)
103
103
  func = mock if mock is not None else self.request
104
104
  return func(method, url, *args, **kwargs)
105
105
 
@@ -251,27 +251,9 @@ class LsRestClient(Session):
251
251
  """
252
252
  return self.request("HEAD", *args, **kwargs)
253
253
 
254
- def mock(self, method: str, url: str, *args, **kwargs):
255
- mock_name = self.mock_name(method, url)
256
- mock = MagicMock(*args, **kwargs)
257
- # mock = MagicMock(self, mock_name, *args, **kwargs)
254
+ def mock(self, mock_name: str, mock: MagicMock):
258
255
  self._mocks[mock_name] = mock
259
- return LsRestClientMock(self, mock_name, mock)
260
256
 
261
257
  def unmock(self, mock_name: str):
262
258
  if mock_name in self._mocks:
263
259
  del self._mocks[mock_name]
264
-
265
-
266
- class LsRestClientMock(object):
267
- def __init__(self, client, mock_name, mock):
268
- self._client = client
269
- self._mock_name = mock_name
270
- self.mock = mock
271
-
272
- def unmock(self):
273
- self._client.unmock(self._mock_name)
274
-
275
- @property
276
- def call_count(self):
277
- return self.mock.call_count
@@ -0,0 +1,12 @@
1
+ from lsrestclient.mock import lsrestclient_mock_context
2
+
3
+ try:
4
+ import pytest
5
+
6
+ @pytest.fixture
7
+ def lsrestclient_mocker():
8
+ with lsrestclient_mock_context() as mocker:
9
+ yield mocker
10
+
11
+ except ImportError:
12
+ pass
@@ -0,0 +1,36 @@
1
+ import dataclasses
2
+ from contextlib import contextmanager
3
+ from unittest.mock import MagicMock
4
+
5
+ from lsrestclient import LsRestClient
6
+
7
+
8
+ @dataclasses.dataclass
9
+ class LsRestClientMockModel:
10
+ mock_name: str
11
+ client: LsRestClient
12
+ mock: MagicMock
13
+
14
+
15
+ class LsRestClientMocker(object):
16
+ def __init__(self):
17
+ super().__init__()
18
+ self.mocks = {}
19
+
20
+ def mock(self, client: LsRestClient, method: str, url: str, *args, **kwargs):
21
+ mock_name = LsRestClient.mock_name(client.name, method, url)
22
+ mock = MagicMock(*args, **kwargs)
23
+ client.mock(mock_name, mock)
24
+ self.mocks[mock_name] = LsRestClientMockModel(client=client, mock_name=mock_name, mock=mock)
25
+ return mock
26
+
27
+ def unmock_all(self):
28
+ for mock_name, mock_model in self.mocks.items():
29
+ mock_model.client.unmock(mock_name)
30
+
31
+
32
+ @contextmanager
33
+ def lsrestclient_mock_context():
34
+ mocker = LsRestClientMocker()
35
+ yield mocker
36
+ mocker.unmock_all()
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "lsrestclient"
3
- version = "1.1.0"
3
+ version = "1.2.0"
4
4
  description = "REST Api Client"
5
5
  authors = ["mba <bartel@electronic-shop.lu>"]
6
6
  readme = "README.md"
@@ -32,3 +32,6 @@ log_cli_format = "[%(levelname)8s] %(message)s (%(filename)s:%(lineno)s)"
32
32
 
33
33
  [tool.black]
34
34
  line-length = 120
35
+
36
+ [tool.poetry.plugins.pytest11]
37
+ "lsrestclient" = "lsrestclient"
File without changes