Fakultas Ilmu Komputer UI
Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
PMPL
Collection of Practice
2019
1606823475-practice
Commits
42217bc8
Commit
42217bc8
authored
Oct 14, 2019
by
Muhammad Ilham Peruzzi
Browse files
Moved Fts into their own individual files
parent
4c898e36
Changes
4
Hide whitespace changes
Inline
Side-by-side
functional_tests/base.py
0 → 100644
View file @
42217bc8
from
selenium
import
webdriver
from
selenium.common.exceptions
import
WebDriverException
from
selenium.webdriver.chrome.options
import
Options
from
selenium.webdriver.common.keys
import
Keys
import
time
import
unittest
import
environ
from
django.contrib.staticfiles.testing
import
StaticLiveServerTestCase
from
unittest
import
skip
class
FunctionalTest
(
StaticLiveServerTestCase
):
MAX_WAIT
=
10
def
setUp
(
self
):
chrome_options
=
Options
()
chrome_options
.
add_argument
(
'--dns-prefetch-disable'
)
chrome_options
.
add_argument
(
'--no-sandbox'
)
chrome_options
.
add_argument
(
'--headless'
)
chrome_options
.
add_argument
(
'disable-gpu'
)
try
:
self
.
browser
=
webdriver
.
Chrome
(
'./chromedriver.exe'
,
chrome_options
=
chrome_options
)
except
:
self
.
browser
=
webdriver
.
Chrome
(
'./chromedriver'
,
chrome_options
=
chrome_options
)
super
(
FunctionalTest
,
self
).
setUp
()
def
tearDown
(
self
):
self
.
browser
.
quit
()
def
wait_for_row_in_list_table
(
self
,
row_text
):
start_time
=
time
.
time
()
while
True
:
try
:
table
=
self
.
browser
.
find_element_by_id
(
'id_list_table'
)
rows
=
table
.
find_elements_by_tag_name
(
'tr'
)
self
.
assertIn
(
row_text
,
[
row
.
text
for
row
in
rows
])
return
except
(
AssertionError
,
WebDriverException
)
as
e
:
if
time
.
time
()
-
start_time
>
MAX_WAIT
:
raise
e
time
.
sleep
(
0.5
)
\ No newline at end of file
functional_tests/test_layout_and_styling.py
0 → 100644
View file @
42217bc8
from
selenium
import
webdriver
from
selenium.common.exceptions
import
WebDriverException
from
selenium.webdriver.chrome.options
import
Options
from
selenium.webdriver.common.keys
import
Keys
import
time
import
unittest
import
environ
from
django.contrib.staticfiles.testing
import
StaticLiveServerTestCase
from
unittest
import
skip
from
.base
import
FunctionalTest
class
LayoutAndStylingTest
(
FunctionalTest
):
def
test_layout_and_styling
(
self
):
# Edith goes to the home page
self
.
browser
.
get
(
self
.
live_server_url
)
self
.
browser
.
set_window_size
(
1024
,
768
)
# She notices the input box is nicely centered
inputbox
=
self
.
browser
.
find_element_by_id
(
'id_new_item'
)
self
.
assertAlmostEqual
(
inputbox
.
location
[
'x'
]
+
inputbox
.
size
[
'width'
]
/
2
,
512
,
delta
=
10
)
#She starts a new list and sees the input is nicely
# centered there too
inputbox
.
send_keys
(
'testing'
)
inputbox
.
send_keys
(
Keys
.
ENTER
)
self
.
wait_for_row_in_list_table
(
'1: testing'
)
inputbox
=
self
.
browser
.
find_element_by_id
(
'id_new_item'
)
self
.
assertAlmostEqual
(
inputbox
.
location
[
'x'
]
+
inputbox
.
size
[
'width'
]
/
2
,
512
,
delta
=
10
)
\ No newline at end of file
functional_tests/test_list_item_validation.py
0 → 100644
View file @
42217bc8
from
selenium
import
webdriver
from
selenium.common.exceptions
import
WebDriverException
from
selenium.webdriver.chrome.options
import
Options
from
selenium.webdriver.common.keys
import
Keys
import
time
import
unittest
import
environ
from
django.contrib.staticfiles.testing
import
StaticLiveServerTestCase
from
unittest
import
skip
from
.base
import
FunctionalTest
class
ItemValidationTest
(
FunctionalTest
):
def
test_cannot_add_empty_list_items
(
self
):
# Edith goes to the home page and accidentally tries to submit
# an empty list item. She hits Enter on the empty input box
# The home page refreshes, and there is an error message saying
# that list items cannot be blank
# She tries again with some text for the item, which now works
# Perversely, she now decides to submit a second blank list item
# She receives a similar warning on the list page
# And she can correct it by filling some text in
self
.
fail
(
'write me!'
)
\ No newline at end of file
functional_tests/test
s
.py
→
functional_tests/test
_simple_list_creation
.py
View file @
42217bc8
...
@@ -6,38 +6,10 @@ import time
...
@@ -6,38 +6,10 @@ import time
import
unittest
import
unittest
import
environ
import
environ
from
django.contrib.staticfiles.testing
import
StaticLiveServerTestCase
from
django.contrib.staticfiles.testing
import
StaticLiveServerTestCase
from
unittest
import
skip
from
.base
import
FunctionalTest
class
NewVisitorTest
(
StaticLiveServerTestCase
):
class
NewVisitorTest
(
FunctionalTest
):
MAX_WAIT
=
10
def
setUp
(
self
):
chrome_options
=
Options
()
chrome_options
.
add_argument
(
'--dns-prefetch-disable'
)
chrome_options
.
add_argument
(
'--no-sandbox'
)
chrome_options
.
add_argument
(
'--headless'
)
chrome_options
.
add_argument
(
'disable-gpu'
)
try
:
self
.
browser
=
webdriver
.
Chrome
(
'./chromedriver.exe'
,
chrome_options
=
chrome_options
)
except
:
self
.
browser
=
webdriver
.
Chrome
(
'./chromedriver'
,
chrome_options
=
chrome_options
)
super
(
NewVisitorTest
,
self
).
setUp
()
def
tearDown
(
self
):
self
.
browser
.
quit
()
def
wait_for_row_in_list_table
(
self
,
row_text
):
start_time
=
time
.
time
()
while
True
:
try
:
table
=
self
.
browser
.
find_element_by_id
(
'id_list_table'
)
rows
=
table
.
find_elements_by_tag_name
(
'tr'
)
self
.
assertIn
(
row_text
,
[
row
.
text
for
row
in
rows
])
return
except
(
AssertionError
,
WebDriverException
)
as
e
:
if
time
.
time
()
-
start_time
>
MAX_WAIT
:
raise
e
time
.
sleep
(
0.5
)
def
test_can_start_a_list_and_retrieve_it_later
(
self
):
def
test_can_start_a_list_and_retrieve_it_later
(
self
):
self
.
browser
.
get
(
self
.
live_server_url
)
self
.
browser
.
get
(
self
.
live_server_url
)
...
@@ -89,25 +61,4 @@ class NewVisitorTest(StaticLiveServerTestCase):
...
@@ -89,25 +61,4 @@ class NewVisitorTest(StaticLiveServerTestCase):
page_text
=
self
.
browser
.
find_element_by_tag_name
(
'body'
).
text
page_text
=
self
.
browser
.
find_element_by_tag_name
(
'body'
).
text
self
.
assertNotIn
(
'Buy peacock feathers'
,
page_text
)
self
.
assertNotIn
(
'Buy peacock feathers'
,
page_text
)
self
.
assertIn
(
'Buy milk'
,
page_text
)
self
.
assertIn
(
'Buy milk'
,
page_text
)
# Satisfied, they both go back to sleep
# Satisfied, they both go back to sleep
\ No newline at end of file
def
test_layout_and_styling
(
self
):
# Edith goes to the home page
self
.
browser
.
get
(
self
.
live_server_url
)
self
.
browser
.
set_window_size
(
1024
,
768
)
# She notices the input box is nicely centered
inputbox
=
self
.
browser
.
find_element_by_id
(
'id_new_item'
)
self
.
assertAlmostEqual
(
inputbox
.
location
[
'x'
]
+
inputbox
.
size
[
'width'
]
/
2
,
512
,
delta
=
10
)
#She starts a new list and sees the input is nicely
# centered there too
inputbox
.
send_keys
(
'testing'
)
inputbox
.
send_keys
(
Keys
.
ENTER
)
self
.
wait_for_row_in_list_table
(
'1: testing'
)
inputbox
=
self
.
browser
.
find_element_by_id
(
'id_new_item'
)
self
.
assertAlmostEqual
(
inputbox
.
location
[
'x'
]
+
inputbox
.
size
[
'width'
]
/
2
,
512
,
delta
=
10
)
\ No newline at end of file
Write
Preview
Supports
Markdown
0%
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!
Cancel
Please
register
or
sign in
to comment