Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
grady
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
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
Jan Maximilian Michal
grady
Commits
83ff19ab
Commit
83ff19ab
authored
6 years ago
by
robinwilliam.hundt
Browse files
Options
Downloads
Patches
Plain Diff
Added sidebar tests
parent
96df55b8
No related branches found
No related tags found
1 merge request
!128
Merge improve testing
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
functional_tests/test_front_pages.py
+41
-7
41 additions, 7 deletions
functional_tests/test_front_pages.py
with
41 additions
and
7 deletions
functional_tests/test_front_pages.py
+
41
−
7
View file @
83ff19ab
import
os
import
os
import
tim
e
from
typing
import
Sequenc
e
from
django.test
import
LiveServerTestCase
from
django.test
import
LiveServerTestCase
from
selenium
import
webdriver
from
selenium
import
webdriver
from
selenium.webdriver.common.keys
import
Keys
from
selenium.webdriver.remote.webelement
import
WebElement
from
selenium.webdriver.firefox.options
import
Options
from
core.models
import
UserAccount
from
functional_tests.util
import
get_frontend_url
,
login
,
create_browser
from
functional_tests.util
import
get_frontend_url
,
login
,
create_browser
from
util.factories
import
make_test_data
from
util
import
factory_boys
as
fact
from
util
import
factory_boys
as
fact
LiveServerTestCase
.
port
=
int
(
os
.
environ
.
get
(
'
LIVE_SERVER_PORT
'
,
0
))
LiveServerTestCase
.
port
=
int
(
os
.
environ
.
get
(
'
LIVE_SERVER_PORT
'
,
0
))
class
FrontPageTestsTutorReviewer
:
class
FrontPageTestsTutorReviewer
():
def
__init__
(
self
):
self
.
browser
:
webdriver
.
Firefox
=
None
def
_login
(
self
):
def
_login
(
self
):
login
(
self
.
browser
,
self
.
live_server_url
,
self
.
username
,
self
.
password
)
login
(
self
.
browser
,
self
.
live_server_url
,
self
.
username
,
self
.
password
)
def
test_statistics_are_shown
(
self
):
def
test_statistics_are_shown
(
self
):
self
.
_login
()
self
.
_login
()
statistics
=
self
.
browser
.
find_element_by_id
(
'
correction-statistics
'
)
statistcs
=
self
.
browser
.
find_element_by_id
(
'
correction-statistics
'
)
title
=
statistcs
.
find_element_by_class_name
(
'
title
'
)
self
.
assertEqual
(
'
Statistics
'
,
title
.
text
)
class
FrontPageTestsTutor
(
LiveServerTestCase
,
FrontPageTestsTutorReviewer
):
class
FrontPageTestsTutor
(
LiveServerTestCase
,
FrontPageTestsTutorReviewer
):
...
@@ -30,10 +32,24 @@ class FrontPageTestsTutor(LiveServerTestCase, FrontPageTestsTutorReviewer):
...
@@ -30,10 +32,24 @@ class FrontPageTestsTutor(LiveServerTestCase, FrontPageTestsTutorReviewer):
self
.
username
=
'
tutor
'
self
.
username
=
'
tutor
'
self
.
password
=
'
p
'
self
.
password
=
'
p
'
fact
.
UserAccountFactory
(
username
=
self
.
username
,
password
=
self
.
password
)
fact
.
UserAccountFactory
(
username
=
self
.
username
,
password
=
self
.
password
)
fact
.
SubmissionFactory
()
def
tearDown
(
self
):
def
tearDown
(
self
):
self
.
browser
.
quit
()
self
.
browser
.
quit
()
def
test_side_bar_contains_correct_items
(
self
):
self
.
_login
()
drawer
=
self
.
browser
.
find_element_by_class_name
(
'
v-navigation-drawer
'
)
links
=
extract_hrefs
(
drawer
.
find_elements_by_tag_name
(
'
a
'
))
self
.
assertTrue
(
all
(
link
in
links
for
link
in
[
'
#/home
'
,
'
#/feedback
'
]))
task_title
=
drawer
.
find_element_by_class_name
(
'
v-toolbar__title
'
)
self
.
assertEqual
(
'
Tasks
'
,
task_title
.
text
)
footer
=
drawer
.
find_element_by_class_name
(
'
sidebar-footer
'
)
feedback_link
=
footer
.
find_element_by_css_selector
(
'
a.feedback-link
'
)
self
.
assertEqual
(
'
Give us Feedback!
'
,
feedback_link
.
text
)
self
.
assertEqual
(
'
https://gitlab.gwdg.de/j.michal/grady/issues
'
,
feedback_link
.
get_attribute
(
'
href
'
))
class
FrontPageTestsReviewer
(
LiveServerTestCase
,
FrontPageTestsTutorReviewer
):
class
FrontPageTestsReviewer
(
LiveServerTestCase
,
FrontPageTestsTutorReviewer
):
def
setUp
(
self
):
def
setUp
(
self
):
...
@@ -45,3 +61,21 @@ class FrontPageTestsReviewer(LiveServerTestCase, FrontPageTestsTutorReviewer):
...
@@ -45,3 +61,21 @@ class FrontPageTestsReviewer(LiveServerTestCase, FrontPageTestsTutorReviewer):
def
tearDown
(
self
):
def
tearDown
(
self
):
self
.
browser
.
quit
()
self
.
browser
.
quit
()
def
test_side_bar_contains_correct_items
(
self
):
self
.
_login
()
drawer
=
self
.
browser
.
find_element_by_class_name
(
'
v-navigation-drawer
'
)
links
=
extract_hrefs
(
drawer
.
find_elements_by_tag_name
(
'
a
'
))
self
.
assertTrue
(
all
(
link
in
links
for
link
in
[
'
#/home
'
,
'
#/feedback
'
,
'
#/student-overview
'
,
'
#/tutor-overview
'
]))
task_title
=
drawer
.
find_element_by_class_name
(
'
v-toolbar__title
'
)
self
.
assertEqual
(
'
Tasks
'
,
task_title
.
text
)
footer
=
drawer
.
find_element_by_class_name
(
'
sidebar-footer
'
)
feedback_link
=
footer
.
find_element_by_css_selector
(
'
a.feedback-link
'
)
self
.
assertEqual
(
'
Give us Feedback!
'
,
feedback_link
.
text
)
self
.
assertEqual
(
'
https://gitlab.gwdg.de/j.michal/grady/issues
'
,
feedback_link
.
get_attribute
(
'
href
'
))
def
extract_hrefs
(
web_elements
:
Sequence
[
WebElement
]):
return
[
el
.
get_attribute
(
'
href
'
)
for
el
in
web_elements
]
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