fiddler-client 3.0.2__tar.gz → 3.0.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.
- {fiddler-client-3.0.2/fiddler_client.egg-info → fiddler_client-3.0.4}/PKG-INFO +1 -1
- fiddler_client-3.0.4/fiddler/VERSION +1 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/entities/model_deployment.py +5 -1
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/entities/webhook.py +18 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/packtools/template_model.py +3 -2
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/tests/apis/test_model_deployment.py +35 -1
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/tests/apis/test_webhook.py +57 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4/fiddler_client.egg-info}/PKG-INFO +1 -1
- fiddler-client-3.0.2/fiddler/VERSION +0 -1
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/LICENSE.txt +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/MANIFEST.in +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/PUBLIC.md +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/README.md +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/__init__.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/configs.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/connection.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/constants/__init__.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/constants/alert_rule.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/constants/baseline.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/constants/common.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/constants/dataset.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/constants/events.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/constants/job.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/constants/model.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/constants/model_deployment.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/constants/xai.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/decorators.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/entities/__init__.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/entities/alert_record.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/entities/alert_rule.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/entities/base.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/entities/baseline.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/entities/custom_expression.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/entities/dataset.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/entities/events.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/entities/file.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/entities/job.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/entities/model.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/entities/model_artifact.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/entities/organization.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/entities/project.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/entities/surrogate.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/entities/user.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/entities/xai.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/exceptions.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/libs/__init__.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/libs/http_client.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/libs/json_encoder.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/libs/semver.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/packtools/__init__.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/packtools/gem.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/packtools/keras_ig_helpers.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/packtools/project_attributions_helpers.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/schemas/__init__.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/schemas/alert_record.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/schemas/alert_rule.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/schemas/base.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/schemas/baseline.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/schemas/custom_expression.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/schemas/custom_features.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/schemas/dataset.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/schemas/events.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/schemas/file.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/schemas/filter_query.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/schemas/job.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/schemas/model.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/schemas/model_deployment.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/schemas/model_schema.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/schemas/model_spec.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/schemas/model_task_params.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/schemas/organization.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/schemas/project.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/schemas/response.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/schemas/server_info.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/schemas/user.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/schemas/webhook.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/schemas/xai.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/schemas/xai_params.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/tests/__init__.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/tests/apis/__init__.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/tests/apis/test_alert_record.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/tests/apis/test_alert_rule.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/tests/apis/test_baseline.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/tests/apis/test_custom_metric.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/tests/apis/test_dataset.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/tests/apis/test_events.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/tests/apis/test_files.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/tests/apis/test_generate_model.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/tests/apis/test_job.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/tests/apis/test_mixin.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/tests/apis/test_model.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/tests/apis/test_model_artifact.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/tests/apis/test_model_surrogate.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/tests/apis/test_project.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/tests/apis/test_segment.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/tests/apis/test_xai.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/tests/conftest.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/tests/constants.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/tests/test_connection.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/tests/test_json_encoder.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/tests/test_logger.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/tests/test_utils.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/tests/utils.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/utils/__init__.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/utils/helpers.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/utils/logger.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/utils/model_generator.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/utils/validations.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/utils/version.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/version.py +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler_client.egg-info/SOURCES.txt +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler_client.egg-info/dependency_links.txt +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler_client.egg-info/requires.txt +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler_client.egg-info/top_level.txt +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/setup.cfg +0 -0
- {fiddler-client-3.0.2 → fiddler_client-3.0.4}/setup.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.0.4
|
|
@@ -6,7 +6,9 @@ from uuid import UUID
|
|
|
6
6
|
|
|
7
7
|
from fiddler.decorators import handle_api_error
|
|
8
8
|
from fiddler.entities.base import BaseEntity
|
|
9
|
+
from fiddler.entities.job import Job
|
|
9
10
|
from fiddler.entities.project import ProjectCompactMixin
|
|
11
|
+
from fiddler.schemas.job import JobCompactResp
|
|
10
12
|
from fiddler.schemas.model_deployment import ModelDeploymentResponse
|
|
11
13
|
from fiddler.utils.logger import get_logger
|
|
12
14
|
|
|
@@ -94,7 +96,7 @@ class ModelDeployment(
|
|
|
94
96
|
self._resp = resp_obj
|
|
95
97
|
|
|
96
98
|
@handle_api_error
|
|
97
|
-
def update(self) ->
|
|
99
|
+
def update(self) -> Job:
|
|
98
100
|
"""Update an existing model deployment."""
|
|
99
101
|
payload: dict[str, Any] = {'active': self.active}
|
|
100
102
|
if self.replicas is not None:
|
|
@@ -108,6 +110,8 @@ class ModelDeployment(
|
|
|
108
110
|
url=self._get_url(model_id=self.model_id), data=payload
|
|
109
111
|
)
|
|
110
112
|
self._refresh_from_response(response=response)
|
|
113
|
+
job_compact = JobCompactResp(**response.json()['data']['job'])
|
|
114
|
+
return Job.get(id_=job_compact.id)
|
|
111
115
|
|
|
112
116
|
@classmethod
|
|
113
117
|
def of(cls, model_id: UUID | str) -> ModelDeployment:
|
|
@@ -6,7 +6,9 @@ from uuid import UUID
|
|
|
6
6
|
|
|
7
7
|
from fiddler.decorators import handle_api_error
|
|
8
8
|
from fiddler.entities.base import BaseEntity
|
|
9
|
+
from fiddler.schemas.filter_query import OperatorType, QueryCondition, QueryRule
|
|
9
10
|
from fiddler.schemas.webhook import WebhookProvider, WebhookResp
|
|
11
|
+
from fiddler.utils.helpers import raise_not_found
|
|
10
12
|
|
|
11
13
|
|
|
12
14
|
class Webhook(BaseEntity):
|
|
@@ -81,6 +83,22 @@ class Webhook(BaseEntity):
|
|
|
81
83
|
response = cls._client().get(url=cls._get_url(id_))
|
|
82
84
|
return cls._from_response(response=response)
|
|
83
85
|
|
|
86
|
+
@classmethod
|
|
87
|
+
@handle_api_error
|
|
88
|
+
def from_name(cls, name: str) -> Webhook:
|
|
89
|
+
"""Get the webhook instance using webhook name"""
|
|
90
|
+
_filter = QueryCondition(
|
|
91
|
+
rules=[QueryRule(field='name', operator=OperatorType.EQUAL, value=name)]
|
|
92
|
+
)
|
|
93
|
+
|
|
94
|
+
response = cls._client().get(
|
|
95
|
+
url=cls._get_url(), params={'filter': _filter.json()}
|
|
96
|
+
)
|
|
97
|
+
if response.json()['data']['total'] == 0:
|
|
98
|
+
raise_not_found('Webhook not found for the given identifier')
|
|
99
|
+
|
|
100
|
+
return cls._from_dict(data=response.json()['data']['items'][0])
|
|
101
|
+
|
|
84
102
|
@classmethod
|
|
85
103
|
@handle_api_error
|
|
86
104
|
def list(cls) -> Iterator[Webhook]:
|
|
@@ -36,7 +36,8 @@ class TemplateKerasTF2Model:
|
|
|
36
36
|
:param hybrid: Boolean value for hybrid data type (for example matrices). Default to False.
|
|
37
37
|
"""
|
|
38
38
|
import tensorflow as tf
|
|
39
|
-
|
|
39
|
+
|
|
40
|
+
from fiddler.packtools.keras_ig_helpers import ComputeGradientsKerasTF2
|
|
40
41
|
|
|
41
42
|
embedding_names = embedding_names or []
|
|
42
43
|
batch_input_shape_list = batch_input_shape_list or []
|
|
@@ -197,7 +198,7 @@ class TemplateTreeShap:
|
|
|
197
198
|
:return: explanations_by_output and extras_by_output: two dictionaries with keys the output columns and values
|
|
198
199
|
the corresponding explanations and extra information necessary
|
|
199
200
|
"""
|
|
200
|
-
from packtools.project_attributions_helpers import TreeShapAttributions
|
|
201
|
+
from fiddler.packtools.project_attributions_helpers import TreeShapAttributions
|
|
201
202
|
|
|
202
203
|
if explanation_name != self.tree_shap_explanations:
|
|
203
204
|
raise NotImplementedError(
|
|
@@ -3,9 +3,12 @@ from http import HTTPStatus
|
|
|
3
3
|
import pytest
|
|
4
4
|
import responses
|
|
5
5
|
|
|
6
|
+
from fiddler.entities.job import Job
|
|
6
7
|
from fiddler.entities.model_deployment import ModelDeployment
|
|
7
8
|
from fiddler.exceptions import NotFound
|
|
8
9
|
from fiddler.tests.constants import (
|
|
10
|
+
JOB_ID,
|
|
11
|
+
JOB_NAME,
|
|
9
12
|
MODEL_DEPLOYMENT_ID,
|
|
10
13
|
MODEL_ID,
|
|
11
14
|
MODEL_NAME,
|
|
@@ -50,6 +53,7 @@ API_RESPONSE_200 = {
|
|
|
50
53
|
'full_name': USER_NAME,
|
|
51
54
|
'email': USER_EMAIL,
|
|
52
55
|
},
|
|
56
|
+
'job': {'id': JOB_ID, 'name': 'Deploy artifact model - manual'},
|
|
53
57
|
},
|
|
54
58
|
}
|
|
55
59
|
|
|
@@ -67,6 +71,31 @@ API_RESPONSE_404 = {
|
|
|
67
71
|
}
|
|
68
72
|
}
|
|
69
73
|
|
|
74
|
+
JOB_API_RESPONSE_200 = {
|
|
75
|
+
'api_version': '3.0',
|
|
76
|
+
'kind': 'NORMAL',
|
|
77
|
+
'data': {
|
|
78
|
+
'name': JOB_NAME,
|
|
79
|
+
'info': {
|
|
80
|
+
'resource_type': 'MODEL',
|
|
81
|
+
'resource_name': 'bank_churn',
|
|
82
|
+
'project_name': 'bank_churn',
|
|
83
|
+
},
|
|
84
|
+
'id': JOB_ID,
|
|
85
|
+
'status': 'SUCCESS',
|
|
86
|
+
'progress': 100,
|
|
87
|
+
'error_message': None,
|
|
88
|
+
'error_reason': None,
|
|
89
|
+
'extras': {
|
|
90
|
+
'e36d1cf2-766f-4705-8269-b6f93bf1ca14': {
|
|
91
|
+
'status': 'SUCCESS',
|
|
92
|
+
'result': {'result': 'Success'},
|
|
93
|
+
'error_message': None,
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
},
|
|
97
|
+
}
|
|
98
|
+
|
|
70
99
|
|
|
71
100
|
@responses.activate
|
|
72
101
|
def test_update_model_deployment_success() -> None:
|
|
@@ -79,8 +108,13 @@ def test_update_model_deployment_success() -> None:
|
|
|
79
108
|
model_deployment.cpu = 300
|
|
80
109
|
model_deployment.active = True
|
|
81
110
|
|
|
82
|
-
|
|
111
|
+
responses.get(
|
|
112
|
+
url=f'{URL}/v3/jobs/{JOB_ID}',
|
|
113
|
+
json=JOB_API_RESPONSE_200,
|
|
114
|
+
)
|
|
115
|
+
job = model_deployment.update()
|
|
83
116
|
assert isinstance(model_deployment, ModelDeployment)
|
|
117
|
+
assert isinstance(job, Job)
|
|
84
118
|
assert model_deployment.cpu == 300
|
|
85
119
|
assert model_deployment.active
|
|
86
120
|
|
|
@@ -48,6 +48,29 @@ API_RESPONSE_404 = {
|
|
|
48
48
|
'kind': 'ERROR',
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
+
API_RESPONSE_FROM_NAME = {
|
|
52
|
+
'data': {
|
|
53
|
+
'page_size': 100,
|
|
54
|
+
'total': 1,
|
|
55
|
+
'item_count': 1,
|
|
56
|
+
'page_count': 1,
|
|
57
|
+
'page_index': 1,
|
|
58
|
+
'offset': 0,
|
|
59
|
+
'items': [
|
|
60
|
+
{
|
|
61
|
+
'id': 1,
|
|
62
|
+
'uuid': WEBHOOK_ID,
|
|
63
|
+
'name': WEBHOOK_NAME,
|
|
64
|
+
'url': WEBHOOK_URL,
|
|
65
|
+
'provider': WEBHOOK_PROVIDER,
|
|
66
|
+
'created_at': '2024-04-30T13:38:08.408013+00:00',
|
|
67
|
+
'updated_at': '2024-04-30T13:38:08.408013+00:00',
|
|
68
|
+
'organization_name': ORG_NAME,
|
|
69
|
+
}
|
|
70
|
+
],
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
51
74
|
LIST_API_RESPONSE = {
|
|
52
75
|
'data': {
|
|
53
76
|
'page_size': 100,
|
|
@@ -124,6 +147,40 @@ def test_get_webhook_not_found() -> None:
|
|
|
124
147
|
Webhook.get(id_=webhook_id)
|
|
125
148
|
|
|
126
149
|
|
|
150
|
+
@responses.activate
|
|
151
|
+
def test_webhook_from_name_success() -> None:
|
|
152
|
+
params = {
|
|
153
|
+
'filter': '{"condition": "AND", "rules": [{"field": "name", "operator": "equal", "value": "test_webhook_config_name"}]}'
|
|
154
|
+
}
|
|
155
|
+
responses.get(
|
|
156
|
+
url=f'{URL}/v2/webhooks',
|
|
157
|
+
json=API_RESPONSE_FROM_NAME,
|
|
158
|
+
match=[responses.matchers.query_param_matcher(params)],
|
|
159
|
+
)
|
|
160
|
+
webhook = Webhook.from_name(name=WEBHOOK_NAME)
|
|
161
|
+
assert isinstance(webhook, Webhook)
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
@responses.activate
|
|
165
|
+
def test_webhook_from_name_not_found() -> None:
|
|
166
|
+
resp = API_RESPONSE_FROM_NAME.copy()
|
|
167
|
+
resp['data']['total'] = 0
|
|
168
|
+
resp['data']['item_count'] = 0
|
|
169
|
+
resp['data']['items'] = []
|
|
170
|
+
|
|
171
|
+
params = {
|
|
172
|
+
'filter': '{"condition": "AND", "rules": [{"field": "name", "operator": "equal", "value": "test_webhook_config_name"}]}'
|
|
173
|
+
}
|
|
174
|
+
responses.get(
|
|
175
|
+
url=f'{URL}/v2/webhooks',
|
|
176
|
+
json=resp,
|
|
177
|
+
match=[responses.matchers.query_param_matcher(params)],
|
|
178
|
+
)
|
|
179
|
+
|
|
180
|
+
with pytest.raises(NotFound):
|
|
181
|
+
Webhook.from_name(name=WEBHOOK_NAME)
|
|
182
|
+
|
|
183
|
+
|
|
127
184
|
@responses.activate
|
|
128
185
|
def test_webhook_list_success() -> None:
|
|
129
186
|
responses.get(
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
3.0.2
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fiddler-client-3.0.2 → fiddler_client-3.0.4}/fiddler/packtools/project_attributions_helpers.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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|