Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
slapos.core
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Léo-Paul Géneau
slapos.core
Commits
b17809ef
Commit
b17809ef
authored
Jul 07, 2017
by
Alain Takoudjou
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
slapos slap_tool: fix test on certificate
parent
3a82479d
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
134 additions
and
23 deletions
+134
-23
master/bt5/slapos_slap_tool/TestTemplateItem/portal_components/test.erp5.testSlapOSSlapTool.py
...ateItem/portal_components/test.erp5.testSlapOSSlapTool.py
+116
-6
master/bt5/slapos_slap_tool/TestTemplateItem/portal_components/test.erp5.testSlapOSSlapTool.xml
...teItem/portal_components/test.erp5.testSlapOSSlapTool.xml
+18
-17
No files found.
master/bt5/slapos_slap_tool/TestTemplateItem/portal_components/test.erp5.testSlapOSSlapTool.py
View file @
b17809ef
...
...
@@ -34,6 +34,25 @@ class Simulator:
'reckwargs'
:
kwargs
})
open
(
self
.
outfile
,
'w'
).
write
(
repr
(
l
))
def
generateCertificateRequest
():
return
"""-----BEGIN CERTIFICATE REQUEST-----
MIIClDCCAXwCAQAwJjEkMCIGA1UEAwwbbmdpbnhAY2VydGlmaWNhdGUuYXV0aG9y
aXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx0KJXUK6dDNQ1R7C
t3p4HBtBZ3LWqW8SzAvQUDHIlDuxVAa1CRZVcDA79Z7wLosUDDk1ImB7ZADt2nhX
xBJY66cCLtNamboQX9Lz6aCymWOHntHLVXj65tF6z0U19H+5c7Js/J+xfuDtya2Y
zGN27jsx6xLSgf/RZ2e9YB1yI6CfvBb8U4OD521iK6UxPXW9dnQLcNdwzo378pfT
oAqcVsyV0F+6aSjHfasPljC72AmEh6/lpiT4hzNZ6A7Xz1lPbJ8TKTD1FMSDB/Nd
POqglfsQY62GWbHSvhwLm6sfyusO3zeUFdxLmVztGjRAMWV/c65BiaHUR/CrWSoA
J8aP/QIDAQABoCkwJwYJKoZIhvcNAQkOMRowGDAJBgNVHRMEAjAAMAsGA1UdDwQE
AwIF4DANBgkqhkiG9w0BAQsFAAOCAQEAiL2PQCFeUrshU2/G8W1YDlbcseicJZqF
wft2UOxTRA95CKgW5WMxTbpqUbVXtw7fccgud7GcT8jwxx2g1rq9vgh2SaIu0dCQ
MEUMHPih3eb0atze/+QZr/v0a/+9LuoWffZU7FGEAtEpBDXV1n4X3RmSQXdtrmUj
a3af5hwyhoXqX4wZ/sB6rA00CyyimPLLiRyDDqY/hYHvUEOLMzdmlpb7yAeMZSsO
b20ShhRHw0cPl+dQaU5ejXGmXOIywslIVn8ffy5K7rv6PQ2OSdRazbSehqFNXzG1
VqyqoMcNesjuW8qbVF4LrOyqLo7RR/6x8Owhu9+rOm2ukMgzF+PAow==
-----END CERTIFICATE REQUEST-----"""
class
TestSlapOSSlapToolMixin
(
testSlapOSMixin
):
def
afterSetUp
(
self
,
person
=
None
):
testSlapOSMixin
.
afterSetUp
(
self
)
...
...
@@ -891,8 +910,9 @@ class TestSlapOSSlapToolInstanceAccess(TestSlapOSSlapToolMixin):
partition_id
=
self
.
start_requested_software_instance
.
getAggregateValue
(
portal_type
=
'Computer Partition'
).
getReference
()
self
.
login
(
self
.
start_requested_software_instance
.
getReference
())
csr_string
=
generateCertificateRequest
()
response
=
self
.
portal_slap
.
getComputerPartitionCertificate
(
self
.
computer_id
,
partition_id
)
partition_id
,
certificate_request
=
csr_string
)
self
.
assertEqual
(
200
,
response
.
status
)
self
.
assertEqual
(
'public, max-age=0, must-revalidate'
,
response
.
headers
.
get
(
'cache-control'
))
...
...
@@ -901,6 +921,14 @@ class TestSlapOSSlapToolInstanceAccess(TestSlapOSSlapToolMixin):
self
.
assertTrue
(
'last-modified'
in
response
.
headers
)
self
.
assertEqual
(
'text/xml; charset=utf-8'
,
response
.
headers
.
get
(
'content-type'
))
# Get assigned certificate
certificate_login_list
=
[
x
for
x
in
self
.
start_requested_software_instance
.
contentValues
(
portal_type
=
"Certificate Login"
)
if
x
.
getValidationState
()
==
'validated'
]
self
.
assertEqual
(
len
(
certificate_login_list
),
1
)
certificate
=
self
.
start_requested_software_instance
.
getCertificate
()
# check returned XML
xml_fp
=
StringIO
.
StringIO
()
...
...
@@ -919,8 +947,69 @@ class TestSlapOSSlapToolInstanceAccess(TestSlapOSSlapToolMixin):
</dictionary>
</marshal>
"""
%
dict
(
instance_certificate
=
self
.
start_requested_software_instance
.
getSslCertificate
(),
instance_key
=
self
.
start_requested_software_instance
.
getSslKey
()
instance_certificate
=
certificate
,
instance_key
=
""
)
self
.
assertEqual
(
expected_xml
,
got_xml
,
'
\
n
'
.
join
([
q
for
q
in
difflib
.
unified_diff
(
expected_xml
.
split
(
'
\
n
'
),
got_xml
.
split
(
'
\
n
'
))]))
def
test_getComputerPartitionCertificate_when_exists
(
self
):
self
.
_makeComplexComputer
()
partition_id
=
self
.
start_requested_software_instance
.
getAggregateValue
(
portal_type
=
'Computer Partition'
).
getReference
()
self
.
login
(
self
.
start_requested_software_instance
.
getReference
())
csr_string
=
generateCertificateRequest
()
response
=
self
.
portal_slap
.
getComputerPartitionCertificate
(
self
.
computer_id
,
partition_id
,
certificate_request
=
csr_string
)
self
.
assertEqual
(
200
,
response
.
status
)
self
.
assertEqual
(
'public, max-age=0, must-revalidate'
,
response
.
headers
.
get
(
'cache-control'
))
self
.
assertEqual
(
'REMOTE_USER'
,
response
.
headers
.
get
(
'vary'
))
self
.
assertTrue
(
'last-modified'
in
response
.
headers
)
self
.
assertEqual
(
'text/xml; charset=utf-8'
,
response
.
headers
.
get
(
'content-type'
))
# Get assigned certificate
certificate
=
self
.
start_requested_software_instance
.
getCertificate
()
# get assigned certificate
response
=
self
.
portal_slap
.
getComputerPartitionCertificate
(
self
.
computer_id
,
partition_id
,
certificate_request
=
None
)
self
.
assertEqual
(
200
,
response
.
status
)
self
.
assertEqual
(
'public, max-age=0, must-revalidate'
,
response
.
headers
.
get
(
'cache-control'
))
self
.
assertEqual
(
'REMOTE_USER'
,
response
.
headers
.
get
(
'vary'
))
self
.
assertTrue
(
'last-modified'
in
response
.
headers
)
self
.
assertEqual
(
'text/xml; charset=utf-8'
,
response
.
headers
.
get
(
'content-type'
))
certificate_login_list
=
[
x
for
x
in
self
.
start_requested_software_instance
.
contentValues
(
portal_type
=
"Certificate Login"
)
if
x
.
getValidationState
()
==
'validated'
]
self
.
assertEqual
(
len
(
certificate_login_list
),
1
)
# check returned XML
xml_fp
=
StringIO
.
StringIO
()
xml
.
dom
.
ext
.
PrettyPrint
(
xml
.
dom
.
ext
.
reader
.
Sax
.
FromXml
(
response
.
body
),
stream
=
xml_fp
)
xml_fp
.
seek
(
0
)
got_xml
=
xml_fp
.
read
()
expected_xml
=
"""
\
<?xml version='1.0' encoding='UTF-8'?>
<marshal>
<dictionary id='i2'>
<string>certificate</string>
<string>%(instance_certificate)s</string>
<string>key</string>
<string>%(instance_key)s</string>
</dictionary>
</marshal>
"""
%
dict
(
instance_certificate
=
certificate
,
instance_key
=
""
)
self
.
assertEqual
(
expected_xml
,
got_xml
,
'
\
n
'
.
join
([
q
for
q
in
difflib
.
unified_diff
(
expected_xml
.
split
(
'
\
n
'
),
got_xml
.
split
(
'
\
n
'
))]))
...
...
@@ -1596,6 +1685,16 @@ class TestSlapOSSlapToolInstanceAccess(TestSlapOSSlapToolMixin):
partition_id
=
self
.
destroy_requested_software_instance
.
getAggregateValue
(
portal_type
=
'Computer Partition'
).
getReference
()
self
.
login
(
self
.
destroy_requested_software_instance
.
getReference
())
csr_string
=
generateCertificateRequest
()
response
=
self
.
portal_slap
.
getComputerPartitionCertificate
(
self
.
computer_id
,
partition_id
,
certificate_request
=
csr_string
)
self
.
assertEqual
(
200
,
response
.
status
)
# Get assigned certificate
certificate
=
self
.
destroy_requested_software_instance
.
getCertificate
()
for
cert
in
self
.
destroy_requested_software_instance
.
contentValues
(
portal_type
=
"Certificate Login"
):
self
.
assertTrue
(
cert
.
getValidationState
()
==
"validated"
)
response
=
self
.
portal_slap
.
destroyedComputerPartition
(
self
.
computer_id
,
partition_id
)
self
.
assertEqual
(
'None'
,
response
)
...
...
@@ -1604,6 +1703,9 @@ class TestSlapOSSlapToolInstanceAccess(TestSlapOSSlapToolMixin):
self
.
assertEqual
(
None
,
self
.
destroy_requested_software_instance
.
getSslKey
())
self
.
assertEqual
(
None
,
self
.
destroy_requested_software_instance
.
getSslCertificate
())
for
cert
in
self
.
destroy_requested_software_instance
.
contentValues
(
portal_type
=
"Certificate Login"
):
self
.
assertTrue
(
cert
.
getValidationState
()
==
"invalidated"
)
def
assertInstanceRequestSimulator
(
self
,
args
,
kwargs
):
stored
=
eval
(
open
(
self
.
instance_request_simulator
).
read
())
# do the same translation magic as in workflow
...
...
@@ -2938,10 +3040,14 @@ class TestSlapOSSlapToolPersonAccess(TestSlapOSSlapToolMixin):
'generateComputerCertificate'
)
computer_certificate
=
'live_
\
n
certificate_%s'
%
self
.
generateNewId
()
computer_key
=
'live_
\
n
key_%s'
%
self
.
generateNewId
()
computer_key
=
""
url
=
'http://ca.certificate/%s'
%
self
.
generateNewId
()
certificate_request
=
'live_
\
n
key_%s'
%
self
.
generateNewId
()
self
.
portal
.
REQUEST
.
set
(
'computer_certificate'
,
computer_certificate
)
self
.
portal
.
REQUEST
.
set
(
'computer_key'
,
computer_key
)
response
=
self
.
portal_slap
.
generateComputerCertificate
(
self
.
computer_id
)
self
.
portal
.
REQUEST
.
set
(
'computer_certificate_url'
,
url
)
response
=
self
.
portal_slap
.
generateComputerCertificate
(
self
.
computer_id
,
certificate_request
)
# check returned XML
xml_fp
=
StringIO
.
StringIO
()
...
...
@@ -2958,9 +3064,13 @@ class TestSlapOSSlapToolPersonAccess(TestSlapOSSlapToolMixin):
<unicode>%(computer_certificate)s</unicode>
<string>key</string>
<unicode>%(computer_key)s</unicode>
<string>url</string>
<unicode>%(url)s</unicode>
</dictionary>
</marshal>
"""
%
{
'computer_key'
:
computer_key
,
'computer_certificate'
:
computer_certificate
}
"""
%
{
'computer_key'
:
computer_key
,
'computer_certificate'
:
computer_certificate
,
'url'
:
url
}
self
.
assertEqual
(
expected_xml
,
got_xml
,
'
\
n
'
.
join
([
q
for
q
in
difflib
.
unified_diff
(
expected_xml
.
split
(
'
\
n
'
),
got_xml
.
split
(
'
\
n
'
))]))
...
...
master/bt5/slapos_slap_tool/TestTemplateItem/portal_components/test.erp5.testSlapOSSlapTool.xml
View file @
b17809ef
...
...
@@ -47,23 +47,24 @@
<value>
<tuple>
<string>
W: 29, 10: Use of eval (eval-used)
</string>
<string>
W: 38, 2: Arguments number differs from overridden \'afterSetUp\' method (arguments-differ)
</string>
<string>
W:517, 13: Use of eval (eval-used)
</string>
<string>
W:568, 13: Use of eval (eval-used)
</string>
<string>
W:793, 13: Use of eval (eval-used)
</string>
<string>
W:1401, 13: Use of eval (eval-used)
</string>
<string>
W:1514, 13: Use of eval (eval-used)
</string>
<string>
W:1568, 13: Use of eval (eval-used)
</string>
<string>
W:1608, 13: Use of eval (eval-used)
</string>
<string>
W:2015, 2: Arguments number differs from overridden \'afterSetUp\' method (arguments-differ)
</string>
<string>
W:2111, 13: Use of eval (eval-used)
</string>
<string>
W:2496, 13: Use of eval (eval-used)
</string>
<string>
W:2550, 13: Use of eval (eval-used)
</string>
<string>
W:2577, 13: Use of eval (eval-used)
</string>
<string>
W:2732, 13: Use of eval (eval-used)
</string>
<string>
W:2760, 13: Use of eval (eval-used)
</string>
<string>
W:2809, 13: Use of eval (eval-used)
</string>
<string>
W:2856, 13: Use of eval (eval-used)
</string>
<string>
W: 57, 2: Arguments number differs from overridden \'afterSetUp\' method (arguments-differ)
</string>
<string>
W:536, 13: Use of eval (eval-used)
</string>
<string>
W:587, 13: Use of eval (eval-used)
</string>
<string>
W:812, 13: Use of eval (eval-used)
</string>
<string>
W:1490, 13: Use of eval (eval-used)
</string>
<string>
W:1603, 13: Use of eval (eval-used)
</string>
<string>
W:1657, 13: Use of eval (eval-used)
</string>
<string>
W:1694, 4: Unused variable \'certificate\' (unused-variable)
</string>
<string>
W:1710, 13: Use of eval (eval-used)
</string>
<string>
W:2234, 2: Arguments number differs from overridden \'afterSetUp\' method (arguments-differ)
</string>
<string>
W:2330, 13: Use of eval (eval-used)
</string>
<string>
W:2715, 13: Use of eval (eval-used)
</string>
<string>
W:2769, 13: Use of eval (eval-used)
</string>
<string>
W:2796, 13: Use of eval (eval-used)
</string>
<string>
W:2951, 13: Use of eval (eval-used)
</string>
<string>
W:2979, 13: Use of eval (eval-used)
</string>
<string>
W:3028, 13: Use of eval (eval-used)
</string>
<string>
W:3083, 13: Use of eval (eval-used)
</string>
</tuple>
</value>
</item>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment