Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
slapos
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
Commits
87a46508
Commit
87a46508
authored
Nov 04, 2024
by
Jérome Perrin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
software/gitlab/test: ruff format
parent
ec164546
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
24 additions
and
23 deletions
+24
-23
software/gitlab/test/test.py
software/gitlab/test/test.py
+24
-23
No files found.
software/gitlab/test/test.py
View file @
87a46508
...
@@ -35,57 +35,58 @@ from slapos.testing.testcase import makeModuleSetUpAndTestCaseClass
...
@@ -35,57 +35,58 @@ from slapos.testing.testcase import makeModuleSetUpAndTestCaseClass
setUpModule
,
SlapOSInstanceTestCase
=
makeModuleSetUpAndTestCaseClass
(
setUpModule
,
SlapOSInstanceTestCase
=
makeModuleSetUpAndTestCaseClass
(
os
.
path
.
abspath
(
os
.
path
.
abspath
(
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
),
".."
,
"software.cfg"
))
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
),
'..'
,
'software.cfg'
))
)
)
class
TestGitlab
(
SlapOSInstanceTestCase
):
class
TestGitlab
(
SlapOSInstanceTestCase
):
__partition_reference__
=
'G'
# solve path too long for postgresql and unicorn
__partition_reference__
=
"G"
# solve path too long for postgresql and unicorn
instance_max_retry
=
50
# puma takes time to be ready
instance_max_retry
=
50
# puma takes time to be ready
@
classmethod
@
classmethod
def
getInstanceSoftwareType
(
cls
):
def
getInstanceSoftwareType
(
cls
):
return
'gitlab'
return
"gitlab"
@
classmethod
@
classmethod
def
getInstanceParameterDict
(
cls
):
def
getInstanceParameterDict
(
cls
):
return
{
'root-password'
:
'admin1234'
}
return
{
"root-password"
:
"admin1234"
}
def
setUp
(
self
):
def
setUp
(
self
):
self
.
backend_url
=
self
.
computer_partition
.
getConnectionParameterDict
(
self
.
backend_url
=
self
.
computer_partition
.
getConnectionParameterDict
()[
)[
'backend_url'
]
"backend_url"
]
def
test_http_get
(
self
):
def
test_http_get
(
self
):
resp
=
requests
.
get
(
self
.
backend_url
,
verify
=
False
)
resp
=
requests
.
get
(
self
.
backend_url
,
verify
=
False
)
self
.
assertTrue
(
self
.
assertTrue
(
resp
.
status_code
in
[
requests
.
codes
.
ok
,
requests
.
codes
.
found
])
resp
.
status_code
in
[
requests
.
codes
.
ok
,
requests
.
codes
.
found
])
def
test_rack_attack_sign_in_rate_limiting
(
self
):
def
test_rack_attack_sign_in_rate_limiting
(
self
):
session
=
requests
.
session
()
session
=
requests
.
session
()
# Load the login page to get a CSRF token.
# Load the login page to get a CSRF token.
response
=
session
.
get
(
urljoin
(
self
.
backend_url
,
'users/sign_in'
),
verify
=
False
)
response
=
session
.
get
(
urljoin
(
self
.
backend_url
,
"users/sign_in"
),
verify
=
False
)
self
.
assertEqual
(
response
.
status_code
,
200
)
self
.
assertEqual
(
response
.
status_code
,
200
)
# Extract the CSRF token and param.
# Extract the CSRF token and param.
bsoup
=
bs4
.
BeautifulSoup
(
response
.
text
,
'html.parser'
)
bsoup
=
bs4
.
BeautifulSoup
(
response
.
text
,
"html.parser"
)
csrf_param
=
bsoup
.
find
(
'meta'
,
dict
(
name
=
'csrf-param'
))[
'content'
]
csrf_param
=
bsoup
.
find
(
"meta"
,
dict
(
name
=
"csrf-param"
))[
"content"
]
csrf_token
=
bsoup
.
find
(
'meta'
,
dict
(
name
=
'csrf-token'
))[
'content'
]
csrf_token
=
bsoup
.
find
(
"meta"
,
dict
(
name
=
"csrf-token"
))[
"content"
]
request_data
=
{
request_data
=
{
'user[login]'
:
'test'
,
"user[login]"
:
"test"
,
'user[password]'
:
'random'
,
"user[password]"
:
"random"
,
csrf_param
:
csrf_token
}
csrf_param
:
csrf_token
,
}
sign_in
=
functools
.
partial
(
sign_in
=
functools
.
partial
(
session
.
post
,
session
.
post
,
response
.
url
,
data
=
request_data
,
verify
=
False
response
.
url
,
)
data
=
request_data
,
verify
=
False
)
for
_
in
range
(
10
):
for
_
in
range
(
10
):
sign_in
(
headers
=
{
'X-Forwarded-For'
:
'1.2.3.4'
})
sign_in
(
headers
=
{
"X-Forwarded-For"
:
"1.2.3.4"
})
# after 10 authentication failures, this client is rate limited
# after 10 authentication failures, this client is rate limited
self
.
assertEqual
(
sign_in
(
headers
=
{
'X-Forwarded-For'
:
'1.2.3.4'
}).
status_code
,
429
)
self
.
assertEqual
(
sign_in
(
headers
=
{
"X-Forwarded-For"
:
"1.2.3.4"
}).
status_code
,
429
)
# but other clients are not
# but other clients are not
self
.
assertNotEqual
(
sign_in
(
headers
=
{
'X-Forwarded-For'
:
'5.6.7.8'
}).
status_code
,
429
)
self
.
assertNotEqual
(
sign_in
(
headers
=
{
"X-Forwarded-For"
:
"5.6.7.8"
}).
status_code
,
429
)
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