qena-shared-lib 0.1.2__tar.gz → 0.1.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/PKG-INFO +41 -1
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/README.md +40 -0
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/pyproject.toml +1 -1
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/src/qena_shared_lib/rabbitmq/_exception_handlers.py +1 -0
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/src/qena_shared_lib/scheduler.py +3 -5
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/src/qena_shared_lib/security.py +9 -3
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/tests/test_security.py +45 -45
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/uv.lock +1 -1
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/.gitignore +0 -0
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/.pre-commit-config.yaml +0 -0
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/requirements.txt +0 -0
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/src/qena_shared_lib/__init__.py +0 -0
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/src/qena_shared_lib/application.py +0 -0
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/src/qena_shared_lib/background.py +0 -0
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/src/qena_shared_lib/dependencies/__init__.py +0 -0
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/src/qena_shared_lib/dependencies/http.py +0 -0
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/src/qena_shared_lib/dependencies/miscellaneous.py +0 -0
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/src/qena_shared_lib/exception_handlers.py +0 -0
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/src/qena_shared_lib/exceptions.py +0 -0
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/src/qena_shared_lib/http.py +0 -0
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/src/qena_shared_lib/logging.py +0 -0
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/src/qena_shared_lib/logstash/__init__.py +0 -0
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/src/qena_shared_lib/logstash/_base.py +0 -0
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/src/qena_shared_lib/logstash/_http_sender.py +0 -0
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/src/qena_shared_lib/logstash/_tcp_sender.py +0 -0
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/src/qena_shared_lib/py.typed +0 -0
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/src/qena_shared_lib/rabbitmq/__init__.py +0 -0
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/src/qena_shared_lib/rabbitmq/_base.py +0 -0
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/src/qena_shared_lib/rabbitmq/_channel.py +0 -0
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/src/qena_shared_lib/rabbitmq/_exceptions.py +0 -0
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/src/qena_shared_lib/rabbitmq/_listener.py +0 -0
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/src/qena_shared_lib/rabbitmq/_pool.py +0 -0
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/src/qena_shared_lib/rabbitmq/_publisher.py +0 -0
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/src/qena_shared_lib/rabbitmq/_rpc_client.py +0 -0
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/src/qena_shared_lib/rabbitmq/_utils.py +0 -0
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/src/qena_shared_lib/utils.py +0 -0
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/tests/conftest.py +0 -0
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/tests/test_application.py +0 -0
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/tests/test_background.py +0 -0
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/tests/test_dependencies.py +0 -0
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/tests/test_logstash.py +0 -0
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/tests/test_rabbitmq.py +0 -0
- {qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/tests/test_scheduler.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: qena-shared-lib
|
3
|
-
Version: 0.1.
|
3
|
+
Version: 0.1.4
|
4
4
|
Summary: A shared tools for other services
|
5
5
|
Requires-Python: >=3.10
|
6
6
|
Requires-Dist: cronsim~=2.0
|
@@ -30,6 +30,12 @@ A shared tools for other services. It includes.
|
|
30
30
|
|
31
31
|
# Usage
|
32
32
|
|
33
|
+
## Environment variables
|
34
|
+
|
35
|
+
- `LOGGER_NAME` root logger name.
|
36
|
+
- `UNAUTHORIZED_RESPONSE_CODE` an integer response on an authorized access of resource.
|
37
|
+
- `TOKEN_HEADER` to header key for jwt token.
|
38
|
+
|
33
39
|
## Http
|
34
40
|
|
35
41
|
To create fastapi app.
|
@@ -273,6 +279,40 @@ async def get_user(
|
|
273
279
|
return user
|
274
280
|
```
|
275
281
|
|
282
|
+
### Flow control
|
283
|
+
|
284
|
+
``` py
|
285
|
+
@Consumer("UserQueue")
|
286
|
+
class UserConsumer(ListenerBase):
|
287
|
+
|
288
|
+
@consume()
|
289
|
+
async def store_user(self, ctx: ListenerContext, user: User):
|
290
|
+
...
|
291
|
+
|
292
|
+
await ctx.flow_control.request(10)
|
293
|
+
|
294
|
+
...
|
295
|
+
|
296
|
+
```
|
297
|
+
|
298
|
+
### Rpc reply
|
299
|
+
|
300
|
+
Optionally it is possible to reply to rpc calls, through.
|
301
|
+
|
302
|
+
``` py
|
303
|
+
@RpcWorker("UserQueue")
|
304
|
+
class UserWorker(ListenerBase):
|
305
|
+
|
306
|
+
@execute()
|
307
|
+
async def store_user(self, ctx: ListenerContext, user: User):
|
308
|
+
...
|
309
|
+
|
310
|
+
await ctx.rpc_reply.reply("Done")
|
311
|
+
|
312
|
+
...
|
313
|
+
```
|
314
|
+
|
315
|
+
|
276
316
|
## Scheduler
|
277
317
|
|
278
318
|
``` py
|
@@ -13,6 +13,12 @@ A shared tools for other services. It includes.
|
|
13
13
|
|
14
14
|
# Usage
|
15
15
|
|
16
|
+
## Environment variables
|
17
|
+
|
18
|
+
- `LOGGER_NAME` root logger name.
|
19
|
+
- `UNAUTHORIZED_RESPONSE_CODE` an integer response on an authorized access of resource.
|
20
|
+
- `TOKEN_HEADER` to header key for jwt token.
|
21
|
+
|
16
22
|
## Http
|
17
23
|
|
18
24
|
To create fastapi app.
|
@@ -256,6 +262,40 @@ async def get_user(
|
|
256
262
|
return user
|
257
263
|
```
|
258
264
|
|
265
|
+
### Flow control
|
266
|
+
|
267
|
+
``` py
|
268
|
+
@Consumer("UserQueue")
|
269
|
+
class UserConsumer(ListenerBase):
|
270
|
+
|
271
|
+
@consume()
|
272
|
+
async def store_user(self, ctx: ListenerContext, user: User):
|
273
|
+
...
|
274
|
+
|
275
|
+
await ctx.flow_control.request(10)
|
276
|
+
|
277
|
+
...
|
278
|
+
|
279
|
+
```
|
280
|
+
|
281
|
+
### Rpc reply
|
282
|
+
|
283
|
+
Optionally it is possible to reply to rpc calls, through.
|
284
|
+
|
285
|
+
``` py
|
286
|
+
@RpcWorker("UserQueue")
|
287
|
+
class UserWorker(ListenerBase):
|
288
|
+
|
289
|
+
@execute()
|
290
|
+
async def store_user(self, ctx: ListenerContext, user: User):
|
291
|
+
...
|
292
|
+
|
293
|
+
await ctx.rpc_reply.reply("Done")
|
294
|
+
|
295
|
+
...
|
296
|
+
```
|
297
|
+
|
298
|
+
|
259
299
|
## Scheduler
|
260
300
|
|
261
301
|
``` py
|
@@ -188,6 +188,7 @@ class ScheduleManager(AsyncEventLoopMixin):
|
|
188
188
|
self._logstash = logstash
|
189
189
|
self._scheduled_tasks: list[ScheduledTask] = []
|
190
190
|
self._next_run_in = None
|
191
|
+
self._scheduler_task = None
|
191
192
|
self._logger = LoggerProvider.default().get_logger("schedule_manager")
|
192
193
|
|
193
194
|
def include_scheduler(self, scheduler: Scheduler | type[SchedulerBase]):
|
@@ -227,10 +228,7 @@ class ScheduleManager(AsyncEventLoopMixin):
|
|
227
228
|
if not self._aquired_lock():
|
228
229
|
return
|
229
230
|
|
230
|
-
if (
|
231
|
-
getattr(self, "_scheduler_task", None) is not None
|
232
|
-
and not self._scheduler_task.done()
|
233
|
-
):
|
231
|
+
if self._scheduler_task is not None and not self._scheduler_task.done():
|
234
232
|
raise RuntimeError("scheduler already running")
|
235
233
|
|
236
234
|
self.use_schedulers()
|
@@ -256,7 +254,7 @@ class ScheduleManager(AsyncEventLoopMixin):
|
|
256
254
|
self._scheduled_tasks.extend(scheduler.scheduled_tasks)
|
257
255
|
|
258
256
|
def stop(self):
|
259
|
-
if not self._scheduler_task.done():
|
257
|
+
if self._scheduler_task is not None and not self._scheduler_task.done():
|
260
258
|
self._scheduler_task.cancel()
|
261
259
|
|
262
260
|
self.SCHEDULE_MANAGER_STATE.state("stopped")
|
@@ -26,7 +26,7 @@ __all__ = [
|
|
26
26
|
]
|
27
27
|
|
28
28
|
|
29
|
-
MESSAGE = "you are not authorized to access requested
|
29
|
+
MESSAGE = "you are not authorized to access requested resource"
|
30
30
|
RESPONSE_CODE = int(environ.get("UNAUTHORIZED_RESPONSE_CODE") or 0)
|
31
31
|
|
32
32
|
|
@@ -92,9 +92,15 @@ class UserInfo(BaseModel):
|
|
92
92
|
async def extract_user_info(
|
93
93
|
jwt_adapter: Annotated[JwtAdapter, DependsOn(JwtAdapter)],
|
94
94
|
token: Annotated[
|
95
|
-
str | None,
|
95
|
+
str | None,
|
96
|
+
Header(
|
97
|
+
alias=environ.get("TOKEN_HEADER") or "authorization",
|
98
|
+
include_in_schema=False,
|
99
|
+
),
|
100
|
+
] = None,
|
101
|
+
user_agent: Annotated[
|
102
|
+
str | None, Header(alias="user-agent", include_in_schema=False)
|
96
103
|
] = None,
|
97
|
-
user_agent: Annotated[str | None, Header(alias="user-agent")] = None,
|
98
104
|
) -> UserInfo:
|
99
105
|
extra = {"userAgent": user_agent} if user_agent is not None else None
|
100
106
|
|
@@ -62,7 +62,7 @@ async def test_endpoint_acl_expired_token():
|
|
62
62
|
assert res.is_client_error
|
63
63
|
assert res.json() == {
|
64
64
|
"severity": "MEDIUM",
|
65
|
-
"message": "you are not authorized to access
|
65
|
+
"message": "you are not authorized to access requested resource",
|
66
66
|
"code": 0,
|
67
67
|
}
|
68
68
|
|
@@ -102,7 +102,7 @@ async def test_endpoint_acl_invalid_payload():
|
|
102
102
|
assert res.is_client_error
|
103
103
|
assert res.json() == {
|
104
104
|
"severity": "MEDIUM",
|
105
|
-
"message": "you are not authorized to access
|
105
|
+
"message": "you are not authorized to access requested resource",
|
106
106
|
"code": 0,
|
107
107
|
}
|
108
108
|
|
@@ -153,7 +153,7 @@ async def test_endpoint_acl_any_user_type():
|
|
153
153
|
assert res.status_code == 401
|
154
154
|
assert res.json() == {
|
155
155
|
"severity": "MEDIUM",
|
156
|
-
"message": "you are not authorized to access
|
156
|
+
"message": "you are not authorized to access requested resource",
|
157
157
|
"code": 0,
|
158
158
|
}
|
159
159
|
|
@@ -199,7 +199,7 @@ async def test_endpoint_acl_specific_user_type():
|
|
199
199
|
assert res.status_code == 401
|
200
200
|
assert res.json() == {
|
201
201
|
"severity": "MEDIUM",
|
202
|
-
"message": "you are not authorized to access
|
202
|
+
"message": "you are not authorized to access requested resource",
|
203
203
|
"code": 0,
|
204
204
|
}
|
205
205
|
|
@@ -208,7 +208,7 @@ async def test_endpoint_acl_specific_user_type():
|
|
208
208
|
assert res.status_code == 401
|
209
209
|
assert res.json() == {
|
210
210
|
"severity": "MEDIUM",
|
211
|
-
"message": "you are not authorized to access
|
211
|
+
"message": "you are not authorized to access requested resource",
|
212
212
|
"code": 0,
|
213
213
|
}
|
214
214
|
|
@@ -276,7 +276,7 @@ async def test_endpoint_acl_any_user_type_some_permissions():
|
|
276
276
|
assert res.status_code == 401
|
277
277
|
assert res.json() == {
|
278
278
|
"severity": "MEDIUM",
|
279
|
-
"message": "you are not authorized to access
|
279
|
+
"message": "you are not authorized to access requested resource",
|
280
280
|
"code": 0,
|
281
281
|
}
|
282
282
|
|
@@ -289,7 +289,7 @@ async def test_endpoint_acl_any_user_type_some_permissions():
|
|
289
289
|
assert res.status_code == 401
|
290
290
|
assert res.json() == {
|
291
291
|
"severity": "MEDIUM",
|
292
|
-
"message": "you are not authorized to access
|
292
|
+
"message": "you are not authorized to access requested resource",
|
293
293
|
"code": 0,
|
294
294
|
}
|
295
295
|
|
@@ -302,7 +302,7 @@ async def test_endpoint_acl_any_user_type_some_permissions():
|
|
302
302
|
assert res.status_code == 401
|
303
303
|
assert res.json() == {
|
304
304
|
"severity": "MEDIUM",
|
305
|
-
"message": "you are not authorized to access
|
305
|
+
"message": "you are not authorized to access requested resource",
|
306
306
|
"code": 0,
|
307
307
|
}
|
308
308
|
|
@@ -346,7 +346,7 @@ async def test_endpoint_acl_any_user_type_some_permissions():
|
|
346
346
|
assert res.status_code == 401
|
347
347
|
assert res.json() == {
|
348
348
|
"severity": "MEDIUM",
|
349
|
-
"message": "you are not authorized to access
|
349
|
+
"message": "you are not authorized to access requested resource",
|
350
350
|
"code": 0,
|
351
351
|
}
|
352
352
|
|
@@ -359,7 +359,7 @@ async def test_endpoint_acl_any_user_type_some_permissions():
|
|
359
359
|
assert res.status_code == 401
|
360
360
|
assert res.json() == {
|
361
361
|
"severity": "MEDIUM",
|
362
|
-
"message": "you are not authorized to access
|
362
|
+
"message": "you are not authorized to access requested resource",
|
363
363
|
"code": 0,
|
364
364
|
}
|
365
365
|
|
@@ -376,7 +376,7 @@ async def test_endpoint_acl_any_user_type_some_permissions():
|
|
376
376
|
assert res.status_code == 401
|
377
377
|
assert res.json() == {
|
378
378
|
"severity": "MEDIUM",
|
379
|
-
"message": "you are not authorized to access
|
379
|
+
"message": "you are not authorized to access requested resource",
|
380
380
|
"code": 0,
|
381
381
|
}
|
382
382
|
|
@@ -385,7 +385,7 @@ async def test_endpoint_acl_any_user_type_some_permissions():
|
|
385
385
|
assert res.status_code == 401
|
386
386
|
assert res.json() == {
|
387
387
|
"severity": "MEDIUM",
|
388
|
-
"message": "you are not authorized to access
|
388
|
+
"message": "you are not authorized to access requested resource",
|
389
389
|
"code": 0,
|
390
390
|
}
|
391
391
|
|
@@ -456,7 +456,7 @@ async def test_endpoint_acl_specific_user_type_some_permissions():
|
|
456
456
|
assert res.status_code == 401
|
457
457
|
assert res.json() == {
|
458
458
|
"severity": "MEDIUM",
|
459
|
-
"message": "you are not authorized to access
|
459
|
+
"message": "you are not authorized to access requested resource",
|
460
460
|
"code": 0,
|
461
461
|
}
|
462
462
|
|
@@ -469,7 +469,7 @@ async def test_endpoint_acl_specific_user_type_some_permissions():
|
|
469
469
|
assert res.status_code == 401
|
470
470
|
assert res.json() == {
|
471
471
|
"severity": "MEDIUM",
|
472
|
-
"message": "you are not authorized to access
|
472
|
+
"message": "you are not authorized to access requested resource",
|
473
473
|
"code": 0,
|
474
474
|
}
|
475
475
|
|
@@ -482,7 +482,7 @@ async def test_endpoint_acl_specific_user_type_some_permissions():
|
|
482
482
|
assert res.status_code == 401
|
483
483
|
assert res.json() == {
|
484
484
|
"severity": "MEDIUM",
|
485
|
-
"message": "you are not authorized to access
|
485
|
+
"message": "you are not authorized to access requested resource",
|
486
486
|
"code": 0,
|
487
487
|
}
|
488
488
|
|
@@ -495,7 +495,7 @@ async def test_endpoint_acl_specific_user_type_some_permissions():
|
|
495
495
|
assert res.status_code == 401
|
496
496
|
assert res.json() == {
|
497
497
|
"severity": "MEDIUM",
|
498
|
-
"message": "you are not authorized to access
|
498
|
+
"message": "you are not authorized to access requested resource",
|
499
499
|
"code": 0,
|
500
500
|
}
|
501
501
|
|
@@ -508,7 +508,7 @@ async def test_endpoint_acl_specific_user_type_some_permissions():
|
|
508
508
|
assert res.status_code == 401
|
509
509
|
assert res.json() == {
|
510
510
|
"severity": "MEDIUM",
|
511
|
-
"message": "you are not authorized to access
|
511
|
+
"message": "you are not authorized to access requested resource",
|
512
512
|
"code": 0,
|
513
513
|
}
|
514
514
|
|
@@ -525,7 +525,7 @@ async def test_endpoint_acl_specific_user_type_some_permissions():
|
|
525
525
|
assert res.status_code == 401
|
526
526
|
assert res.json() == {
|
527
527
|
"severity": "MEDIUM",
|
528
|
-
"message": "you are not authorized to access
|
528
|
+
"message": "you are not authorized to access requested resource",
|
529
529
|
"code": 0,
|
530
530
|
}
|
531
531
|
|
@@ -538,7 +538,7 @@ async def test_endpoint_acl_specific_user_type_some_permissions():
|
|
538
538
|
assert res.status_code == 401
|
539
539
|
assert res.json() == {
|
540
540
|
"severity": "MEDIUM",
|
541
|
-
"message": "you are not authorized to access
|
541
|
+
"message": "you are not authorized to access requested resource",
|
542
542
|
"code": 0,
|
543
543
|
}
|
544
544
|
|
@@ -551,7 +551,7 @@ async def test_endpoint_acl_specific_user_type_some_permissions():
|
|
551
551
|
assert res.status_code == 401
|
552
552
|
assert res.json() == {
|
553
553
|
"severity": "MEDIUM",
|
554
|
-
"message": "you are not authorized to access
|
554
|
+
"message": "you are not authorized to access requested resource",
|
555
555
|
"code": 0,
|
556
556
|
}
|
557
557
|
|
@@ -568,7 +568,7 @@ async def test_endpoint_acl_specific_user_type_some_permissions():
|
|
568
568
|
assert res.status_code == 401
|
569
569
|
assert res.json() == {
|
570
570
|
"severity": "MEDIUM",
|
571
|
-
"message": "you are not authorized to access
|
571
|
+
"message": "you are not authorized to access requested resource",
|
572
572
|
"code": 0,
|
573
573
|
}
|
574
574
|
|
@@ -577,7 +577,7 @@ async def test_endpoint_acl_specific_user_type_some_permissions():
|
|
577
577
|
assert res.status_code == 401
|
578
578
|
assert res.json() == {
|
579
579
|
"severity": "MEDIUM",
|
580
|
-
"message": "you are not authorized to access
|
580
|
+
"message": "you are not authorized to access requested resource",
|
581
581
|
"code": 0,
|
582
582
|
}
|
583
583
|
|
@@ -620,7 +620,7 @@ async def test_endpoint_acl_any_user_type_all_permissions():
|
|
620
620
|
assert res.status_code == 401
|
621
621
|
assert res.json() == {
|
622
622
|
"severity": "MEDIUM",
|
623
|
-
"message": "you are not authorized to access
|
623
|
+
"message": "you are not authorized to access requested resource",
|
624
624
|
"code": 0,
|
625
625
|
}
|
626
626
|
|
@@ -633,7 +633,7 @@ async def test_endpoint_acl_any_user_type_all_permissions():
|
|
633
633
|
assert res.status_code == 401
|
634
634
|
assert res.json() == {
|
635
635
|
"severity": "MEDIUM",
|
636
|
-
"message": "you are not authorized to access
|
636
|
+
"message": "you are not authorized to access requested resource",
|
637
637
|
"code": 0,
|
638
638
|
}
|
639
639
|
|
@@ -659,7 +659,7 @@ async def test_endpoint_acl_any_user_type_all_permissions():
|
|
659
659
|
assert res.status_code == 401
|
660
660
|
assert res.json() == {
|
661
661
|
"severity": "MEDIUM",
|
662
|
-
"message": "you are not authorized to access
|
662
|
+
"message": "you are not authorized to access requested resource",
|
663
663
|
"code": 0,
|
664
664
|
}
|
665
665
|
|
@@ -672,7 +672,7 @@ async def test_endpoint_acl_any_user_type_all_permissions():
|
|
672
672
|
assert res.status_code == 401
|
673
673
|
assert res.json() == {
|
674
674
|
"severity": "MEDIUM",
|
675
|
-
"message": "you are not authorized to access
|
675
|
+
"message": "you are not authorized to access requested resource",
|
676
676
|
"code": 0,
|
677
677
|
}
|
678
678
|
|
@@ -685,7 +685,7 @@ async def test_endpoint_acl_any_user_type_all_permissions():
|
|
685
685
|
assert res.status_code == 401
|
686
686
|
assert res.json() == {
|
687
687
|
"severity": "MEDIUM",
|
688
|
-
"message": "you are not authorized to access
|
688
|
+
"message": "you are not authorized to access requested resource",
|
689
689
|
"code": 0,
|
690
690
|
}
|
691
691
|
|
@@ -698,7 +698,7 @@ async def test_endpoint_acl_any_user_type_all_permissions():
|
|
698
698
|
assert res.status_code == 401
|
699
699
|
assert res.json() == {
|
700
700
|
"severity": "MEDIUM",
|
701
|
-
"message": "you are not authorized to access
|
701
|
+
"message": "you are not authorized to access requested resource",
|
702
702
|
"code": 0,
|
703
703
|
}
|
704
704
|
|
@@ -711,7 +711,7 @@ async def test_endpoint_acl_any_user_type_all_permissions():
|
|
711
711
|
assert res.status_code == 401
|
712
712
|
assert res.json() == {
|
713
713
|
"severity": "MEDIUM",
|
714
|
-
"message": "you are not authorized to access
|
714
|
+
"message": "you are not authorized to access requested resource",
|
715
715
|
"code": 0,
|
716
716
|
}
|
717
717
|
|
@@ -737,7 +737,7 @@ async def test_endpoint_acl_any_user_type_all_permissions():
|
|
737
737
|
assert res.status_code == 401
|
738
738
|
assert res.json() == {
|
739
739
|
"severity": "MEDIUM",
|
740
|
-
"message": "you are not authorized to access
|
740
|
+
"message": "you are not authorized to access requested resource",
|
741
741
|
"code": 0,
|
742
742
|
}
|
743
743
|
|
@@ -750,7 +750,7 @@ async def test_endpoint_acl_any_user_type_all_permissions():
|
|
750
750
|
assert res.status_code == 401
|
751
751
|
assert res.json() == {
|
752
752
|
"severity": "MEDIUM",
|
753
|
-
"message": "you are not authorized to access
|
753
|
+
"message": "you are not authorized to access requested resource",
|
754
754
|
"code": 0,
|
755
755
|
}
|
756
756
|
|
@@ -767,7 +767,7 @@ async def test_endpoint_acl_any_user_type_all_permissions():
|
|
767
767
|
assert res.status_code == 401
|
768
768
|
assert res.json() == {
|
769
769
|
"severity": "MEDIUM",
|
770
|
-
"message": "you are not authorized to access
|
770
|
+
"message": "you are not authorized to access requested resource",
|
771
771
|
"code": 0,
|
772
772
|
}
|
773
773
|
|
@@ -776,7 +776,7 @@ async def test_endpoint_acl_any_user_type_all_permissions():
|
|
776
776
|
assert res.status_code == 401
|
777
777
|
assert res.json() == {
|
778
778
|
"severity": "MEDIUM",
|
779
|
-
"message": "you are not authorized to access
|
779
|
+
"message": "you are not authorized to access requested resource",
|
780
780
|
"code": 0,
|
781
781
|
}
|
782
782
|
|
@@ -820,7 +820,7 @@ async def test_endpoint_acl_specific_user_type_all_permissions():
|
|
820
820
|
assert res.status_code == 401
|
821
821
|
assert res.json() == {
|
822
822
|
"severity": "MEDIUM",
|
823
|
-
"message": "you are not authorized to access
|
823
|
+
"message": "you are not authorized to access requested resource",
|
824
824
|
"code": 0,
|
825
825
|
}
|
826
826
|
|
@@ -833,7 +833,7 @@ async def test_endpoint_acl_specific_user_type_all_permissions():
|
|
833
833
|
assert res.status_code == 401
|
834
834
|
assert res.json() == {
|
835
835
|
"severity": "MEDIUM",
|
836
|
-
"message": "you are not authorized to access
|
836
|
+
"message": "you are not authorized to access requested resource",
|
837
837
|
"code": 0,
|
838
838
|
}
|
839
839
|
|
@@ -859,7 +859,7 @@ async def test_endpoint_acl_specific_user_type_all_permissions():
|
|
859
859
|
assert res.status_code == 401
|
860
860
|
assert res.json() == {
|
861
861
|
"severity": "MEDIUM",
|
862
|
-
"message": "you are not authorized to access
|
862
|
+
"message": "you are not authorized to access requested resource",
|
863
863
|
"code": 0,
|
864
864
|
}
|
865
865
|
|
@@ -872,7 +872,7 @@ async def test_endpoint_acl_specific_user_type_all_permissions():
|
|
872
872
|
assert res.status_code == 401
|
873
873
|
assert res.json() == {
|
874
874
|
"severity": "MEDIUM",
|
875
|
-
"message": "you are not authorized to access
|
875
|
+
"message": "you are not authorized to access requested resource",
|
876
876
|
"code": 0,
|
877
877
|
}
|
878
878
|
|
@@ -885,7 +885,7 @@ async def test_endpoint_acl_specific_user_type_all_permissions():
|
|
885
885
|
assert res.status_code == 401
|
886
886
|
assert res.json() == {
|
887
887
|
"severity": "MEDIUM",
|
888
|
-
"message": "you are not authorized to access
|
888
|
+
"message": "you are not authorized to access requested resource",
|
889
889
|
"code": 0,
|
890
890
|
}
|
891
891
|
|
@@ -898,7 +898,7 @@ async def test_endpoint_acl_specific_user_type_all_permissions():
|
|
898
898
|
assert res.status_code == 401
|
899
899
|
assert res.json() == {
|
900
900
|
"severity": "MEDIUM",
|
901
|
-
"message": "you are not authorized to access
|
901
|
+
"message": "you are not authorized to access requested resource",
|
902
902
|
"code": 0,
|
903
903
|
}
|
904
904
|
|
@@ -911,7 +911,7 @@ async def test_endpoint_acl_specific_user_type_all_permissions():
|
|
911
911
|
assert res.status_code == 401
|
912
912
|
assert res.json() == {
|
913
913
|
"severity": "MEDIUM",
|
914
|
-
"message": "you are not authorized to access
|
914
|
+
"message": "you are not authorized to access requested resource",
|
915
915
|
"code": 0,
|
916
916
|
}
|
917
917
|
|
@@ -928,7 +928,7 @@ async def test_endpoint_acl_specific_user_type_all_permissions():
|
|
928
928
|
assert res.status_code == 401
|
929
929
|
assert res.json() == {
|
930
930
|
"severity": "MEDIUM",
|
931
|
-
"message": "you are not authorized to access
|
931
|
+
"message": "you are not authorized to access requested resource",
|
932
932
|
"code": 0,
|
933
933
|
}
|
934
934
|
|
@@ -941,7 +941,7 @@ async def test_endpoint_acl_specific_user_type_all_permissions():
|
|
941
941
|
assert res.status_code == 401
|
942
942
|
assert res.json() == {
|
943
943
|
"severity": "MEDIUM",
|
944
|
-
"message": "you are not authorized to access
|
944
|
+
"message": "you are not authorized to access requested resource",
|
945
945
|
"code": 0,
|
946
946
|
}
|
947
947
|
|
@@ -954,7 +954,7 @@ async def test_endpoint_acl_specific_user_type_all_permissions():
|
|
954
954
|
assert res.status_code == 401
|
955
955
|
assert res.json() == {
|
956
956
|
"severity": "MEDIUM",
|
957
|
-
"message": "you are not authorized to access
|
957
|
+
"message": "you are not authorized to access requested resource",
|
958
958
|
"code": 0,
|
959
959
|
}
|
960
960
|
|
@@ -971,7 +971,7 @@ async def test_endpoint_acl_specific_user_type_all_permissions():
|
|
971
971
|
assert res.status_code == 401
|
972
972
|
assert res.json() == {
|
973
973
|
"severity": "MEDIUM",
|
974
|
-
"message": "you are not authorized to access
|
974
|
+
"message": "you are not authorized to access requested resource",
|
975
975
|
"code": 0,
|
976
976
|
}
|
977
977
|
|
@@ -980,6 +980,6 @@ async def test_endpoint_acl_specific_user_type_all_permissions():
|
|
980
980
|
assert res.status_code == 401
|
981
981
|
assert res.json() == {
|
982
982
|
"severity": "MEDIUM",
|
983
|
-
"message": "you are not authorized to access
|
983
|
+
"message": "you are not authorized to access requested resource",
|
984
984
|
"code": 0,
|
985
985
|
}
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/src/qena_shared_lib/dependencies/__init__.py
RENAMED
File without changes
|
File without changes
|
{qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/src/qena_shared_lib/dependencies/miscellaneous.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{qena_shared_lib-0.1.2 → qena_shared_lib-0.1.4}/src/qena_shared_lib/logstash/_http_sender.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|