Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
P
PyOTRS
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
External wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Coopdevs
Som Connexió
OTRS
PyOTRS
Commits
e1169ad8
Commit
e1169ad8
authored
8 years ago
by
Robert Habermann
Browse files
Options
Downloads
Patches
Plain Diff
rename response.* to result.*
parent
cca36de9
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
pyotrs/lib.py
+27
-27
27 additions, 27 deletions
pyotrs/lib.py
tests/test_client.py
+19
-19
19 additions, 19 deletions
tests/test_client.py
tests/test_pyotrs_responses.py
+15
-15
15 additions, 15 deletions
tests/test_pyotrs_responses.py
with
61 additions
and
61 deletions
pyotrs/lib.py
+
27
−
27
View file @
e1169ad8
...
...
@@ -678,12 +678,12 @@ class Client(object):
self
.
attachment_list
=
[]
self
.
dynamic_field_list
=
[]
self
.
list_ticket_
search_resul
t
=
[]
self
.
list_ticket_
get_results
=
[]
self
.
result_
list_ticket_
ge
t
=
[]
self
.
result_
list_ticket_
search
=
[]
self
.
res
ponse
_json
=
None
self
.
res
ponse_status_code
=
None
self
.
res
ponse_content
=
None
self
.
res
ult
_json
=
None
self
.
res
ult_content
=
None
self
.
res
ult_status_code
=
None
"""
GenericInterface::Operation::Session::SessionCreate
...
...
@@ -746,7 +746,7 @@ class Client(object):
if
not
self
.
_parse_and_validate_response
(
response
):
return
False
self
.
session_id_store
.
value
=
self
.
res
ponse
_json
[
'
SessionID
'
]
self
.
session_id_store
.
value
=
self
.
res
ult
_json
[
'
SessionID
'
]
return
True
def
session_restore_or_set_up_new
(
self
):
...
...
@@ -780,7 +780,7 @@ class Client(object):
raise
SessionCreateError
(
"
Failed to create a Session ID!
"
)
# safe new created session_id to file
if
not
self
.
session_id_store
.
write
(
self
.
res
ponse
_json
[
'
SessionID
'
]):
if
not
self
.
session_id_store
.
write
(
self
.
res
ult
_json
[
'
SessionID
'
]):
raise
SessionIDFileError
(
"
Failed to save Session ID to file!
"
)
else
:
print
(
"
Saved new Session ID to file: {0}
"
.
format
(
self
.
session_id_store
.
file_path
))
...
...
@@ -1191,7 +1191,7 @@ class Client(object):
# TODO 2016-04-17 (RH): is this "extra net" needed?!
if
"
Article
"
in
payload
.
keys
():
try
:
article_id
=
self
.
res
ponse
_json
.
get
(
'
ArticleID
'
,
None
)
article_id
=
self
.
res
ult
_json
.
get
(
'
ArticleID
'
,
None
)
if
not
article_id
:
raise
UpdateAddArticleError
(
"
No new Article was created?!
"
)
...
...
@@ -1266,16 +1266,16 @@ class Client(object):
raise
ValueError
(
"
requests.Response object expected!
"
)
# clear data from Client
self
.
list_ticket_get
_results
=
[]
self
.
list_ticket_search
_result
=
[]
self
.
res
ponse
_error
=
False
self
.
result_
list_ticket_get
=
[]
self
.
result_
list_ticket_search
=
[]
self
.
res
ult
_error
=
False
# get and set new data
self
.
res
ponse
_json
=
response
.
json
()
self
.
res
ult
_json
=
response
.
json
()
# TODO 2016-04-24 (RH) can this deep copy go?
self
.
res
ponse
_json_original
=
copy
.
deepcopy
(
self
.
res
ponse
_json
)
self
.
res
ponse
_status_code
=
response
.
status_code
self
.
res
ponse
_content
=
response
.
content
self
.
_
res
ult
_json_original
=
copy
.
deepcopy
(
self
.
res
ult
_json
)
self
.
res
ult
_status_code
=
response
.
status_code
self
.
res
ult
_content
=
response
.
content
if
self
.
operation
==
"
SessionCreate
"
:
self
.
response_type
=
"
SessionID
"
...
...
@@ -1292,33 +1292,33 @@ class Client(object):
# handle TicketSearch operation first. special: empty search result has no "TicketID"
if
self
.
operation
==
"
TicketSearch
"
:
if
not
self
.
res
ponse
_json
:
if
not
self
.
res
ult
_json
:
return
True
if
self
.
res
ponse
_json
.
get
(
self
.
response_type
,
None
):
self
.
list_ticket_search
_result
=
self
.
res
ponse
_json
[
'
TicketID
'
]
if
self
.
res
ult
_json
.
get
(
self
.
response_type
,
None
):
self
.
result_
list_ticket_search
=
self
.
res
ult
_json
[
'
TicketID
'
]
return
True
# now handle other operations
if
self
.
res
ponse
_json
.
get
(
self
.
response_type
,
None
):
self
.
res
ponse
_error
=
False
elif
self
.
res
ponse
_json
.
get
(
"
Error
"
,
None
):
self
.
res
ponse
_error
=
True
if
self
.
res
ult
_json
.
get
(
self
.
response_type
,
None
):
self
.
res
ult
_error
=
False
elif
self
.
res
ult
_json
.
get
(
"
Error
"
,
None
):
self
.
res
ult
_error
=
True
else
:
self
.
res
ponse
_error
=
True
self
.
res
ult
_error
=
True
# critical error: Unknown response from OTRS API - FAIL NOW!
raise
ResponseJSONParseError
(
"
Unknown key in response JSON DICT!
"
)
# report error
if
self
.
res
ponse
_error
:
if
self
.
res
ult
_error
:
raise
OTRSAPIError
(
"
Failed to access OTRS API. Check Username and Password!
"
"
Session ID expired?! Does Ticket exist?
\n
"
"
OTRS Error Code: {0}
\n
OTRS Error Message: {1}
"
""
.
format
(
self
.
res
ponse
_json
[
"
Error
"
][
"
ErrorCode
"
],
self
.
res
ponse
_json
[
"
Error
"
][
"
ErrorMessage
"
]))
""
.
format
(
self
.
res
ult
_json
[
"
Error
"
][
"
ErrorCode
"
],
self
.
res
ult
_json
[
"
Error
"
][
"
ErrorMessage
"
]))
# for operation TicketGet: parse result list into Ticket object list
if
self
.
operation
==
"
TicketGet
"
:
self
.
list_ticket_get
_results
=
[
Ticket
(
item
)
for
item
in
self
.
res
ponse
_json
[
'
Ticket
'
]]
self
.
result_
list_ticket_get
=
[
Ticket
(
item
)
for
item
in
self
.
res
ult
_json
[
'
Ticket
'
]]
return
True
...
...
This diff is collapsed.
Click to expand it.
tests/test_client.py
+
19
−
19
View file @
e1169ad8
...
...
@@ -233,7 +233,7 @@ class ClientTests(unittest.TestCase):
"""
Tests session_restore_or_set_up_new no file; create successful; write (wr) not ok
"""
obj
=
Client
(
baseurl
=
"
http://fqdn
"
,
webservicename
=
"
GenericTicketConnectorREST
"
)
obj
.
session_id_store
.
value
=
"
foobar
"
obj
.
res
ponse
_json
=
{
'
SessionID
'
:
"
the_other_sid1
"
}
obj
.
res
ult
_json
=
{
'
SessionID
'
:
"
the_other_sid1
"
}
mock_read_s_id
.
return_value
=
None
mock_s_create
.
return_value
=
True
...
...
@@ -254,7 +254,7 @@ class ClientTests(unittest.TestCase):
"""
Tests session_restore_or_set_up_new no file; create successful; write (wr) ok
"""
obj
=
Client
(
baseurl
=
"
http://fqdn
"
,
webservicename
=
"
GenericTicketConnectorREST
"
)
obj
.
session_id_store
.
value
=
"
foobar
"
obj
.
res
ponse
_json
=
{
'
SessionID
'
:
"
the_other_sid2
"
}
obj
.
res
ult
_json
=
{
'
SessionID
'
:
"
the_other_sid2
"
}
mock_read_s_id
.
return_value
=
None
mock_s_create
.
return_value
=
True
...
...
@@ -281,13 +281,13 @@ class ClientTests(unittest.TestCase):
def
test_ticket_get_by_id_ok
(
self
,
mock_ticket_get_json
):
"""
Tests ticket_get_by_id ok
"""
obj
=
Client
(
baseurl
=
"
http://fqdn
"
,
webservicename
=
"
GenericTicketConnectorREST
"
)
obj
.
res
ponse
_json
=
{
'
Ticket
'
:
[{
'
Some
'
:
'
Ticket
'
}]}
obj
.
res
ult
_json
=
{
'
Ticket
'
:
[{
'
Some
'
:
'
Ticket
'
}]}
mock_ticket_get_json
.
return_value
=
True
result
=
obj
.
ticket_get_by_id
(
1
)
self
.
assertEqual
(
mock_ticket_get_json
.
call_count
,
1
)
self
.
assertTrue
(
result
)
self
.
assertDictEqual
(
obj
.
res
ponse
_json
[
'
Ticket
'
][
0
],
{
'
Some
'
:
'
Ticket
'
})
self
.
assertDictEqual
(
obj
.
res
ult
_json
[
'
Ticket
'
][
0
],
{
'
Some
'
:
'
Ticket
'
})
@mock.patch
(
'
pyotrs.Client._ticket_get_json
'
,
autospec
=
True
)
def
test_ticket_get_by_ids_fail
(
self
,
mock_ticket_get_json
):
...
...
@@ -295,7 +295,7 @@ class ClientTests(unittest.TestCase):
obj
=
Client
(
baseurl
=
"
http://fqdn
"
,
webservicename
=
"
GenericTicketConnectorREST
"
)
mock_ticket_get_json
.
return_value
=
False
result
=
obj
.
ticket_get_by_
ids
([
1
])
result
=
obj
.
ticket_get_by_
list
([
1
])
self
.
assertEqual
(
mock_ticket_get_json
.
call_count
,
1
)
self
.
assertFalse
(
result
)
...
...
@@ -306,7 +306,7 @@ class ClientTests(unittest.TestCase):
obj
=
Client
(
baseurl
=
"
http://fqdn
"
,
webservicename
=
"
GenericTicketConnectorREST
"
)
mock_ticket_get_json
.
return_value
=
True
result
=
obj
.
ticket_get_by_
ids
([
1
])
result
=
obj
.
ticket_get_by_
list
([
1
])
self
.
assertEqual
(
mock_ticket_get_json
.
call_count
,
1
)
self
.
assertTrue
(
result
)
...
...
@@ -335,14 +335,14 @@ class ClientTests(unittest.TestCase):
"""
Tests ticket_get_by_number provided as int -> ok; 1 result
"""
obj
=
Client
(
baseurl
=
"
http://fqdn
"
,
webservicename
=
"
GenericTicketConnectorREST
"
)
obj
.
res
ponse
_json
=
{
'
Ticket
'
:
[{
'
SomeOne
'
:
'
TicketOne
'
}]}
obj
.
res
ult
_json
=
{
'
Ticket
'
:
[{
'
SomeOne
'
:
'
TicketOne
'
}]}
mock_t_get
.
return_value
=
True
mock_t_search
.
return_value
=
[
1
]
result
=
obj
.
ticket_get_by_number
(
"
SomeOtherNumber1
"
)
self
.
assertTrue
(
result
)
self
.
assertDictEqual
(
obj
.
res
ponse
_json
[
'
Ticket
'
][
0
],
{
'
SomeOne
'
:
'
TicketOne
'
})
self
.
assertDictEqual
(
obj
.
res
ult
_json
[
'
Ticket
'
][
0
],
{
'
SomeOne
'
:
'
TicketOne
'
})
self
.
assertEqual
(
mock_t_search
.
call_count
,
1
)
@mock.patch
(
'
pyotrs.Client.ticket_search
'
,
autospec
=
True
)
...
...
@@ -457,7 +457,7 @@ class ClientTests(unittest.TestCase):
def
test_ticket_search_ticket_id
(
self
,
mock_ticket_search_json
):
"""
Tests ticket_search ticket id
"""
obj
=
Client
(
baseurl
=
"
http://fqdn
"
,
webservicename
=
"
GenericTicketConnectorREST
"
)
obj
.
list_ticket_search
_result
=
[
1
]
obj
.
result_
list_ticket_search
=
[
1
]
mock_ticket_search_json
.
return_value
=
True
obj
.
ticket_search
(
TicketID
=
"
1
"
)
...
...
@@ -468,7 +468,7 @@ class ClientTests(unittest.TestCase):
def
test_ticket_search_datetime
(
self
,
mock_ticket_search_json
):
"""
Tests ticket_search datetime
"""
obj
=
Client
(
baseurl
=
"
http://fqdn
"
,
webservicename
=
"
GenericTicketConnectorREST
"
)
obj
.
list_ticket_search
_result
=
[
1
]
obj
.
result_
list_ticket_search
=
[
1
]
mock_ticket_search_json
.
return_value
=
True
obj
.
ticket_search
(
TicketCreateTimeOlderDate
=
datetime
.
datetime
.
utcnow
())
...
...
@@ -479,7 +479,7 @@ class ClientTests(unittest.TestCase):
def
test_ticket_search_full_text
(
self
,
mock_ticket_search
):
"""
Tests ticket_search full text
"""
obj
=
Client
(
baseurl
=
"
http://fqdn
"
,
webservicename
=
"
GenericTicketConnectorREST
"
)
obj
.
list_ticket_search
_result
=
[
1
]
obj
.
result_
list_ticket_search
=
[
1
]
mock_ticket_search
.
return_value
=
True
...
...
@@ -766,7 +766,7 @@ class ClientTests(unittest.TestCase):
client
.
_parse_and_validate_response
(
mocked_response
)
self
.
assertEqual
(
client
.
response_type
,
'
Ticket
'
)
self
.
assertDictEqual
(
client
.
res
ponse
_json
,
tkt
)
self
.
assertDictEqual
(
client
.
res
ult
_json
,
tkt
)
def
test__validate_response_operation_ticket_create
(
self
):
"""
Test _validate_response with TicketCreate
"""
...
...
@@ -782,8 +782,8 @@ class ClientTests(unittest.TestCase):
client
.
_parse_and_validate_response
(
mocked_response
)
self
.
assertEqual
(
client
.
response_type
,
'
TicketID
'
)
self
.
assertDictEqual
(
client
.
res
ponse
_json
,
{
u
'
ArticleID
'
:
u
'
26
'
,
u
'
TicketID
'
:
u
'
9
'
,
self
.
assertDictEqual
(
client
.
res
ult
_json
,
{
u
'
ArticleID
'
:
u
'
26
'
,
u
'
TicketID
'
:
u
'
9
'
,
u
'
TicketNumber
'
:
u
'
000008
'
})
def
test__validate_response_operation_ticket_update
(
self
):
...
...
@@ -797,7 +797,7 @@ class ClientTests(unittest.TestCase):
client
.
_parse_and_validate_response
(
mocked_response
)
self
.
assertEqual
(
client
.
response_type
,
'
TicketID
'
)
self
.
assertDictEqual
(
client
.
res
ponse
_json
,
{
u
'
TicketID
'
:
u
'
9
'
,
self
.
assertDictEqual
(
client
.
res
ult
_json
,
{
u
'
TicketID
'
:
u
'
9
'
,
u
'
TicketNumber
'
:
u
'
000008
'
})
def
test__validate_response_operation_ticket_search
(
self
):
...
...
@@ -811,7 +811,7 @@ class ClientTests(unittest.TestCase):
client
.
_parse_and_validate_response
(
mocked_response
)
self
.
assertEqual
(
client
.
response_type
,
'
TicketID
'
)
self
.
assertDictEqual
(
client
.
res
ponse
_json
,
{
u
'
TicketID
'
:
[
u
'
9
'
]})
self
.
assertDictEqual
(
client
.
res
ult
_json
,
{
u
'
TicketID
'
:
[
u
'
9
'
]})
def
test__validate_response_operation_ticket_search_empty
(
self
):
"""
Test _validate_response with TicketSearch with empty result
"""
...
...
@@ -824,7 +824,7 @@ class ClientTests(unittest.TestCase):
client
.
_parse_and_validate_response
(
mocked_response
)
self
.
assertEqual
(
client
.
response_type
,
'
TicketID
'
)
self
.
assertDictEqual
(
client
.
res
ponse
_json
,
{})
self
.
assertDictEqual
(
client
.
res
ult
_json
,
{})
def
test__validate_response_operation_ticket_search_nonsense
(
self
):
"""
Test _validate_response with TicketSearch with a nonsence response
"""
...
...
@@ -839,8 +839,8 @@ class ClientTests(unittest.TestCase):
client
.
_parse_and_validate_response
,
mocked_response
)
self
.
assertEqual
(
client
.
response_type
,
'
TicketID
'
)
self
.
assertTrue
(
client
.
res
ponse
_error
)
self
.
assertDictEqual
(
client
.
res
ponse
_json
,
{
u
'
FooBar
'
:
[
u
'
1
'
,
u
'
3
'
]})
self
.
assertTrue
(
client
.
res
ult
_error
)
self
.
assertDictEqual
(
client
.
res
ult
_json
,
{
u
'
FooBar
'
:
[
u
'
1
'
,
u
'
3
'
]})
def
test__validate_response_operation_ticket_get_error
(
self
):
"""
Test _validate_response with TicketGet when an error is received
"""
...
...
This diff is collapsed.
Click to expand it.
tests/test_pyotrs_responses.py
+
15
−
15
View file @
e1169ad8
...
...
@@ -23,9 +23,9 @@ class PyOTRSResponsesTests(unittest.TestCase):
obj
=
Client
(
baseurl
=
"
http://fqdn
"
,
webservicename
=
"
GenericTicketConnectorREST
"
)
self
.
assertIsNone
(
obj
.
res
ponse
_json
)
self
.
assertIsNone
(
obj
.
res
ponse
_status_code
)
self
.
assertIsNone
(
obj
.
res
ponse
_content
)
self
.
assertIsNone
(
obj
.
res
ult
_json
)
self
.
assertIsNone
(
obj
.
res
ult
_status_code
)
self
.
assertIsNone
(
obj
.
res
ult
_content
)
self
.
assertIsNone
(
obj
.
session_id_store
.
value
)
with
responses
.
RequestsMock
(
assert_all_requests_are_fired
=
True
)
as
rsps
:
...
...
@@ -39,10 +39,10 @@ class PyOTRSResponsesTests(unittest.TestCase):
result
=
obj
.
session_create
()
self
.
assertEqual
(
result
,
True
)
self
.
assertFalse
(
obj
.
res
ponse
_error
)
self
.
assertFalse
(
obj
.
res
ult
_error
)
self
.
assertEqual
(
obj
.
operation
,
'
SessionCreate
'
)
self
.
assertEqual
(
obj
.
res
ponse
_status_code
,
200
)
self
.
assertDictEqual
(
obj
.
res
ponse
_json
,
self
.
assertEqual
(
obj
.
res
ult
_status_code
,
200
)
self
.
assertDictEqual
(
obj
.
res
ult
_json
,
{
u
'
SessionID
'
:
u
'
tMtTFDg1PxCX51dWnjue4W5oQtNsFd0k
'
})
self
.
assertEqual
(
obj
.
session_id_store
.
value
,
'
tMtTFDg1PxCX51dWnjue4W5oQtNsFd0k
'
)
...
...
@@ -51,9 +51,9 @@ class PyOTRSResponsesTests(unittest.TestCase):
obj
=
Client
(
baseurl
=
"
http://fqdn
"
,
webservicename
=
"
GenericTicketConnectorREST
"
)
self
.
assertIsNone
(
obj
.
res
ponse
_json
)
self
.
assertIsNone
(
obj
.
res
ponse
_status_code
)
self
.
assertIsNone
(
obj
.
res
ponse
_content
)
self
.
assertIsNone
(
obj
.
res
ult
_json
)
self
.
assertIsNone
(
obj
.
res
ult
_status_code
)
self
.
assertIsNone
(
obj
.
res
ult
_content
)
self
.
assertIsNone
(
obj
.
session_id_store
.
value
)
with
responses
.
RequestsMock
(
assert_all_requests_are_fired
=
True
)
as
rsps
:
...
...
@@ -69,10 +69,10 @@ class PyOTRSResponsesTests(unittest.TestCase):
'
Failed to access OTRS API. Check Username and Password.*
'
,
obj
.
session_create
)
self
.
assertTrue
(
obj
.
res
ponse
_error
)
self
.
assertTrue
(
obj
.
res
ult
_error
)
self
.
assertEqual
(
obj
.
operation
,
'
SessionCreate
'
)
self
.
assertEqual
(
obj
.
res
ponse
_status_code
,
200
)
self
.
assertDictEqual
(
obj
.
res
ponse
_json
,
self
.
assertEqual
(
obj
.
res
ult
_status_code
,
200
)
self
.
assertDictEqual
(
obj
.
res
ult
_json
,
{
"
Error
"
:
{
"
ErrorCode
"
:
"
SessionCreate.AuthFail
"
,
"
ErrorMessage
"
:
"
SessionCreate: Authorization failing!
"
}})
self
.
assertIsNone
(
obj
.
session_id_store
.
value
)
...
...
@@ -83,9 +83,9 @@ class PyOTRSResponsesTests(unittest.TestCase):
obj
=
Client
(
baseurl
=
"
http://fqdn
"
,
webservicename
=
"
GenericTicketConnectorREST
"
)
self
.
assertIsNone
(
obj
.
res
ponse
_json
)
self
.
assertIsNone
(
obj
.
res
ponse
_status_code
)
self
.
assertIsNone
(
obj
.
res
ponse
_content
)
self
.
assertIsNone
(
obj
.
res
ult
_json
)
self
.
assertIsNone
(
obj
.
res
ult
_status_code
)
self
.
assertIsNone
(
obj
.
res
ult
_content
)
self
.
assertIsNone
(
obj
.
session_id_store
.
value
)
mock_validate_resp
.
return_value
=
False
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment