-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtest_result.txt
More file actions
248 lines (229 loc) · 16.6 KB
/
test_result.txt
File metadata and controls
248 lines (229 loc) · 16.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
============================= test session starts =============================
collecting ... collected 6 items
tests/unit/core/test_wrapper.py::TestSankhyaWrapper::test_initialization PASSED [ 16%]
tests/unit/core/test_wrapper.py::TestSankhyaWrapper::test_is_authenticated_false_initially PASSED [ 33%]
tests/unit/core/test_wrapper.py::TestSankhyaWrapper::test_authenticate_success FAILED [ 50%]
tests/unit/core/test_wrapper.py::TestSankhyaWrapper::test_authenticate_failure FAILED [ 66%]
tests/unit/core/test_wrapper.py::TestSankhyaWrapper::test_dispose_marks_as_disposed PASSED [ 83%]
tests/unit/core/test_wrapper.py::TestSankhyaWrapper::test_repr PASSED [100%]
================================== FAILURES ===================================
________________ TestSankhyaWrapper.test_authenticate_success _________________
self = <tests.unit.core.test_wrapper.TestSankhyaWrapper object at 0x0000029D7FC37E10>
mock_user_agent = <MagicMock name='_register_user_agent' id='2875479208832'>
mock_request = <MagicMock name='_make_request' id='2875479208496'>
@patch.object(SankhyaWrapper, "_make_request")
@patch.object(SankhyaWrapper, "_register_user_agent")
def test_authenticate_success(self, mock_user_agent, mock_request):
"""Test successful authentication."""
# Mock response
mock_response = Mock()
mock_response.ok = True
mock_response.status_code = 200
mock_response.content = b"""<?xml version="1.0" encoding="UTF-8"?>
<serviceResponse status="1">
<responseBody>
<jsessionid>SESSION123</jsessionid>
<idusu>MTI=</idusu>
</responseBody>
</serviceResponse>"""
mock_request.return_value = mock_response
wrapper = SankhyaWrapper(
host="http://example.com",
port=8180,
)
> wrapper.authenticate("testuser", "testpass")
tests\unit\core\test_wrapper.py:330:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
sankhya_sdk\core\wrapper.py:212: in authenticate
request.request_body.no_auth = True
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
sankhya_sdk\models\base.py:29: in __setattr__
super().__setattr__(name, value)
C:\Users\TI00\AppData\Local\Programs\Python\Python313\Lib\site-packages\pydantic\main.py:991: in __setattr__
setattr_handler(self, name, value) # call here to not memo on possibly unknown fields
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
model = RequestBody(invoice=None, invoices=None, cancelled_invoices=None, entity=None, data_set=None, param=None, params=None,...config=None, username=None, password=None, single_numbers=None, client_events=None, notification_elem=None, paths=None)
name = 'no_auth', val = True
> 'validate_assignment': lambda model, name, val: model.__pydantic_validator__.validate_assignment(model, name, val), # pyright: ignore[reportAssignmentType]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
'private': lambda model, name, val: model.__pydantic_private__.__setitem__(name, val), # pyright: ignore[reportOptionalMemberAccess]
'cached_property': lambda model, name, val: model.__dict__.__setitem__(name, val),
'extra_known': lambda model, name, val: _object_setattr(model, name, val),
}
E pydantic_core._pydantic_core.ValidationError: 1 validation error for RequestBody
E no_auth
E Object has no attribute 'no_auth' [type=no_such_attribute, input_value=True, input_type=bool]
E For further information visit https://errors.pydantic.dev/2.11/v/no_such_attribute
C:\Users\TI00\AppData\Local\Programs\Python\Python313\Lib\site-packages\pydantic\main.py:104: ValidationError
________________ TestSankhyaWrapper.test_authenticate_failure _________________
self = <tests.unit.core.test_wrapper.TestSankhyaWrapper object at 0x0000029D7FEA4180>
mock_request = <MagicMock name='_make_request' id='2875479969472'>
@patch.object(SankhyaWrapper, "_make_request")
def test_authenticate_failure(self, mock_request):
"""Test authentication failure."""
mock_response = Mock()
mock_response.ok = True
mock_response.status_code = 200
mock_response.content = """<?xml version="1.0" encoding="UTF-8"?>
<serviceResponse status="0">
<statusMessage>Usuario/Senha invalido</statusMessage>
</serviceResponse>""".encode("utf-8")
mock_request.return_value = mock_response
wrapper = SankhyaWrapper(
host="http://example.com",
port=8180,
)
from sankhya_sdk.exceptions import ServiceRequestInvalidCredentialsException
with pytest.raises(ServiceRequestInvalidCredentialsException):
> wrapper.authenticate("baduser", "badpass")
tests\unit\core\test_wrapper.py:354:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
sankhya_sdk\core\wrapper.py:212: in authenticate
request.request_body.no_auth = True
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
sankhya_sdk\models\base.py:29: in __setattr__
super().__setattr__(name, value)
C:\Users\TI00\AppData\Local\Programs\Python\Python313\Lib\site-packages\pydantic\main.py:991: in __setattr__
setattr_handler(self, name, value) # call here to not memo on possibly unknown fields
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
model = RequestBody(invoice=None, invoices=None, cancelled_invoices=None, entity=None, data_set=None, param=None, params=None,...config=None, username=None, password=None, single_numbers=None, client_events=None, notification_elem=None, paths=None)
name = 'no_auth', val = True
> 'validate_assignment': lambda model, name, val: model.__pydantic_validator__.validate_assignment(model, name, val), # pyright: ignore[reportAssignmentType]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
'private': lambda model, name, val: model.__pydantic_private__.__setitem__(name, val), # pyright: ignore[reportOptionalMemberAccess]
'cached_property': lambda model, name, val: model.__dict__.__setitem__(name, val),
'extra_known': lambda model, name, val: _object_setattr(model, name, val),
}
E pydantic_core._pydantic_core.ValidationError: 1 validation error for RequestBody
E no_auth
E Object has no attribute 'no_auth' [type=no_such_attribute, input_value=True, input_type=bool]
E For further information visit https://errors.pydantic.dev/2.11/v/no_such_attribute
C:\Users\TI00\AppData\Local\Programs\Python\Python313\Lib\site-packages\pydantic\main.py:104: ValidationError
============================== warnings summary ===============================
tests/unit/core/test_wrapper.py::TestSankhyaWrapper::test_authenticate_success
tests/unit/core/test_wrapper.py::TestSankhyaWrapper::test_authenticate_success
tests/unit/core/test_wrapper.py::TestSankhyaWrapper::test_authenticate_failure
tests/unit/core/test_wrapper.py::TestSankhyaWrapper::test_authenticate_failure
tests/unit/core/test_wrapper.py::TestSankhyaWrapper::test_dispose_marks_as_disposed
tests/unit/core/test_wrapper.py::TestSankhyaWrapper::test_dispose_marks_as_disposed
C:\git\public\Integra-odoo-snk\Sankhya-SDK-python\sankhya_sdk\models\base.py:18: PydanticDeprecatedSince211: Accessing this attribute on the instance is deprecated, and will be removed in Pydantic V3. Instead, you should access this attribute from the model class. Deprecated in Pydantic V2.11 to be removed in V3.0.
for field_name, field_info in self.model_fields.items():
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=============================== tests coverage ================================
_______________ coverage: platform win32, python 3.13.7-final-0 _______________
Name Stmts Miss Cover
------------------------------------------------------------------------------
sankhya_sdk\__init__.py 8 0 100%
sankhya_sdk\attributes\__init__.py 4 0 100%
sankhya_sdk\attributes\decorators.py 59 45 24%
sankhya_sdk\attributes\metadata.py 22 0 100%
sankhya_sdk\attributes\reflection.py 35 21 40%
sankhya_sdk\attributes\validators.py 15 7 53%
sankhya_sdk\config.py 20 3 85%
sankhya_sdk\core\__init__.py 7 0 100%
sankhya_sdk\core\constants.py 16 0 100%
sankhya_sdk\core\context.py 25 11 56%
sankhya_sdk\core\lock_manager.py 25 9 64%
sankhya_sdk\core\low_level_wrapper.py 89 30 66%
sankhya_sdk\core\types.py 18 0 100%
sankhya_sdk\core\wrapper.py 307 212 31%
sankhya_sdk\enums\__init__.py 30 0 100%
sankhya_sdk\enums\_metadata.py 29 4 86%
sankhya_sdk\enums\billing_type.py 5 0 100%
sankhya_sdk\enums\fiscal_classification.py 8 0 100%
sankhya_sdk\enums\fiscal_invoice_status.py 13 0 100%
sankhya_sdk\enums\fiscal_person_type.py 4 0 100%
sankhya_sdk\enums\freight_type.py 6 0 100%
sankhya_sdk\enums\inventory_type.py 4 0 100%
sankhya_sdk\enums\invoice_follow_up_reference.py 11 0 100%
sankhya_sdk\enums\invoice_freight_type.py 4 0 100%
sankhya_sdk\enums\invoice_status.py 5 0 100%
sankhya_sdk\enums\movement_type.py 27 0 100%
sankhya_sdk\enums\order_history_event.py 7 0 100%
sankhya_sdk\enums\parameter_type.py 5 0 100%
sankhya_sdk\enums\product_source.py 11 0 100%
sankhya_sdk\enums\product_source_type.py 5 0 100%
sankhya_sdk\enums\product_suggestion_type.py 6 0 100%
sankhya_sdk\enums\product_use.py 17 0 100%
sankhya_sdk\enums\reference_level.py 9 0 100%
sankhya_sdk\enums\sankhya_warning_level.py 6 0 100%
sankhya_sdk\enums\sankhya_warning_type.py 5 0 100%
sankhya_sdk\enums\seller_type.py 10 0 100%
sankhya_sdk\enums\service_category.py 9 0 100%
sankhya_sdk\enums\service_environment.py 6 0 100%
sankhya_sdk\enums\service_module.py 6 0 100%
sankhya_sdk\enums\service_name.py 50 6 88%
sankhya_sdk\enums\service_request_type.py 8 0 100%
sankhya_sdk\enums\service_response_status.py 7 0 100%
sankhya_sdk\enums\service_type.py 6 0 100%
sankhya_sdk\enums\system_parameter_type.py 9 0 100%
sankhya_sdk\enums\trading_sub_type.py 11 0 100%
sankhya_sdk\exceptions\__init__.py 7 0 100%
sankhya_sdk\exceptions\base.py 36 16 56%
sankhya_sdk\exceptions\intermediate.py 19 8 58%
sankhya_sdk\exceptions\messages.py 47 0 100%
sankhya_sdk\exceptions\operations.py 42 16 62%
sankhya_sdk\exceptions\service_request.py 84 47 44%
sankhya_sdk\exceptions\service_request_advanced.py 70 41 41%
sankhya_sdk\exceptions\simple.py 21 7 67%
sankhya_sdk\helpers\__init__.py 8 0 100%
sankhya_sdk\helpers\entity_dynamic_serialization.py 159 127 20%
sankhya_sdk\helpers\entity_extensions.py 86 63 27%
sankhya_sdk\helpers\entity_query_options.py 30 12 60%
sankhya_sdk\helpers\filter_expression.py 4 0 100%
sankhya_sdk\helpers\generic_service_entity.py 110 89 19%
sankhya_sdk\helpers\service_request_extensions.py 300 248 17%
sankhya_sdk\helpers\status_message_helper.py 72 47 35%
sankhya_sdk\models\__init__.py 3 0 100%
sankhya_sdk\models\base.py 39 19 51%
sankhya_sdk\models\service\__init__.py 14 0 100%
sankhya_sdk\models\service\basic_types.py 197 106 46%
sankhya_sdk\models\service\constants.py 50 0 100%
sankhya_sdk\models\service\entity_types.py 223 155 30%
sankhya_sdk\models\service\event_types.py 263 164 38%
sankhya_sdk\models\service\invoice_types.py 258 154 40%
sankhya_sdk\models\service\metadata_types.py 221 134 39%
sankhya_sdk\models\service\query_types.py 135 81 40%
sankhya_sdk\models\service\request_body.py 110 79 28%
sankhya_sdk\models\service\response_body.py 151 114 25%
sankhya_sdk\models\service\service_request.py 43 19 56%
sankhya_sdk\models\service\service_response.py 128 79 38%
sankhya_sdk\models\service\user_types.py 239 143 40%
sankhya_sdk\models\service\xml_serialization.py 99 63 36%
sankhya_sdk\models\transport\__init__.py 25 25 0%
sankhya_sdk\models\transport\address.py 59 59 0%
sankhya_sdk\models\transport\base.py 208 208 0%
sankhya_sdk\models\transport\city.py 58 58 0%
sankhya_sdk\models\transport\code_bars.py 39 39 0%
sankhya_sdk\models\transport\enum_helpers.py 22 22 0%
sankhya_sdk\models\transport\invoice_header.py 134 134 0%
sankhya_sdk\models\transport\neighborhood.py 36 36 0%
sankhya_sdk\models\transport\partner.py 139 139 0%
sankhya_sdk\models\transport\partner_complement.py 60 60 0%
sankhya_sdk\models\transport\product.py 109 109 0%
sankhya_sdk\models\transport\product_cost.py 49 49 0%
sankhya_sdk\models\transport\product_suggested_sale.py 21 21 0%
sankhya_sdk\models\transport\region.py 53 53 0%
sankhya_sdk\models\transport\seller.py 69 69 0%
sankhya_sdk\models\transport\service_file.py 20 20 0%
sankhya_sdk\models\transport\state.py 46 46 0%
sankhya_sdk\request_helpers\__init__.py 6 0 100%
sankhya_sdk\request_helpers\request_behavior_options.py 4 0 100%
sankhya_sdk\request_helpers\request_exception_details.py 11 1 91%
sankhya_sdk\request_helpers\request_exception_handler.py 32 18 44%
sankhya_sdk\request_helpers\request_retry_data.py 6 0 100%
sankhya_sdk\request_helpers\request_retry_delay.py 6 0 100%
sankhya_sdk\request_wrappers\__init__.py 0 0 100%
sankhya_sdk\value_objects\__init__.py 5 0 100%
sankhya_sdk\value_objects\entity_resolver.py 24 7 71%
sankhya_sdk\value_objects\parse_property_model.py 22 4 82%
sankhya_sdk\value_objects\service_file.py 29 14 52%
------------------------------------------------------------------------------
TOTAL 5549 3570 36%
Coverage HTML written to dir htmlcov
=========================== short test summary info ===========================
FAILED tests/unit/core/test_wrapper.py::TestSankhyaWrapper::test_authenticate_success
FAILED tests/unit/core/test_wrapper.py::TestSankhyaWrapper::test_authenticate_failure
=================== 2 failed, 4 passed, 6 warnings in 2.24s ===================