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
1606836976-practice
Commits
2e21eada
Commit
2e21eada
authored
Oct 14, 2019
by
Yumna Pratista
Browse files
Move unit tests into a folder with single file
parent
a914a575
Changes
2
Hide whitespace changes
Inline
Side-by-side
app_homepage/tests/__init__.py
0 → 100644
View file @
2e21eada
app_homepage/tests.py
→
app_homepage/tests
/test_all
.py
View file @
2e21eada
from
django.test
import
TestCase
from
django.urls
import
resolve
from
django.http
import
HttpRequest
from
.views
import
home_page
from
.models
import
Item
,
List
from
django.template.loader
import
render_to_string
# Create your tests here.
class
HomePageTest
(
TestCase
):
def
test_uses_home_template
(
self
):
response
=
self
.
client
.
get
(
'/'
)
self
.
assertTemplateUsed
(
response
,
'app/home.html'
)
def
test_can_save_a_POST_request
(
self
):
response
=
self
.
client
.
post
(
'/lists/new'
,
data
=
{
'item_text'
:
'A new list item'
})
self
.
assertEqual
(
Item
.
objects
.
count
(),
1
)
new_item
=
Item
.
objects
.
first
()
self
.
assertEqual
(
new_item
.
text
,
'A new list item'
)
# def test_redirects_after_POST(self):
# response = self.client.post('/lists/new', data={'item_text': 'A new list item'})
# self.assertRedirects(response, '/lists/the-only-list-in-the-world/')
# def test_if_item_smaller_than_5(self):
# response = self.client.get('/')
# self.assertIn('yey, waktunya libur', response.content.decode())
# def test_if_item_smaller_than_5(self):
# Item.objects.create(text='itemey 1')
# Item.objects.create(text='itemey 2')
# response = self.client.get('/')
# self.assertIn('sibuk tapi santai', response.content.decode())
# def test_if_item_more_than_5(self):
# Item.objects.create(text='itemey 1')
# Item.objects.create(text='itemey 2')
# Item.objects.create(text='itemey 3')
# Item.objects.create(text='itemey 4')
# Item.objects.create(text='itemey 5')
# Item.objects.create(text='itemey 6')
# response = self.client.get('/')
# self.assertIn('oh tidak', response.content.decode())
class
ListAndItemModelTest
(
TestCase
):
def
test_saving_and_retrieving_items
(
self
):
list_
=
List
()
list_
.
save
()
first_item
=
Item
()
first_item
.
text
=
'The first (ever) list item'
first_item
.
list
=
list_
first_item
.
save
()
second_item
=
Item
()
second_item
.
text
=
'Item the second'
second_item
.
list
=
list_
second_item
.
save
()
saved_list
=
List
.
objects
.
first
()
self
.
assertEqual
(
saved_list
,
list_
)
saved_items
=
Item
.
objects
.
all
()
self
.
assertEqual
(
saved_items
.
count
(),
2
)
first_saved_item
=
saved_items
[
0
]
second_saved_item
=
saved_items
[
1
]
self
.
assertEqual
(
first_saved_item
.
text
,
'The first (ever) list item'
)
self
.
assertEqual
(
first_saved_item
.
list
,
list_
)
self
.
assertEqual
(
second_saved_item
.
text
,
'Item the second'
)
self
.
assertEqual
(
second_saved_item
.
list
,
list_
)
class
ListViewTest
(
TestCase
):
def
test_uses_list_template
(
self
):
list_
=
List
.
objects
.
create
()
response
=
self
.
client
.
get
(
f
'/lists/
{
list_
.
id
}
/'
)
self
.
assertTemplateUsed
(
response
,
'app/list.html'
)
def
test_displays_only_items_for_that_list
(
self
):
correct_list
=
List
.
objects
.
create
()
Item
.
objects
.
create
(
text
=
'itemey 1'
,
list
=
correct_list
)
Item
.
objects
.
create
(
text
=
'itemey 2'
,
list
=
correct_list
)
other_list
=
List
.
objects
.
create
()
Item
.
objects
.
create
(
text
=
'other list item 1'
,
list
=
other_list
)
Item
.
objects
.
create
(
text
=
'other list item 2'
,
list
=
other_list
)
response
=
self
.
client
.
get
(
f
'/lists/
{
correct_list
.
id
}
/'
)
self
.
assertContains
(
response
,
'itemey 1'
)
self
.
assertContains
(
response
,
'itemey 2'
)
self
.
assertNotContains
(
response
,
'other list item 1'
)
self
.
assertNotContains
(
response
,
'other list item 2'
)
class
NewListTest
(
TestCase
):
def
test_can_save_a_POST_request
(
self
):
self
.
client
.
post
(
'/lists/new'
,
data
=
{
'item_text'
:
'A new list item'
})
self
.
assertEqual
(
Item
.
objects
.
count
(),
1
)
new_item
=
Item
.
objects
.
first
()
self
.
assertEqual
(
new_item
.
text
,
'A new list item'
)
def
test_redirects_after_POST
(
self
):
response
=
self
.
client
.
post
(
'/lists/new'
,
data
=
{
'item_text'
:
'A new list item'
})
new_list
=
List
.
objects
.
first
()
self
.
assertRedirects
(
response
,
f
'/lists/
{
new_list
.
id
}
/'
)
class
NewItemTest
(
TestCase
):
def
test_can_save_a_POST_request_to_an_existing_list
(
self
):
other_list
=
List
.
objects
.
create
()
correct_list
=
List
.
objects
.
create
()
self
.
client
.
post
(
f
'/lists/
{
correct_list
.
id
}
/add_item'
,
data
=
{
'item_text'
:
'A new item for an existing list'
}
)
self
.
assertEqual
(
Item
.
objects
.
count
(),
1
)
new_item
=
Item
.
objects
.
first
()
self
.
assertEqual
(
new_item
.
text
,
'A new item for an existing list'
)
self
.
assertEqual
(
new_item
.
list
,
correct_list
)
def
test_redirects_to_list_view
(
self
):
other_list
=
List
.
objects
.
create
()
correct_list
=
List
.
objects
.
create
()
response
=
self
.
client
.
post
(
f
'/lists/
{
correct_list
.
id
}
/add_item'
,
data
=
{
'item_text'
:
'A new item for an existing list'
}
)
self
.
assertRedirects
(
response
,
f
'/lists/
{
correct_list
.
id
}
/'
)
def
test_passes_correct_list_to_template
(
self
):
other_list
=
List
.
objects
.
create
()
correct_list
=
List
.
objects
.
create
()
response
=
self
.
client
.
get
(
f
'/lists/
{
correct_list
.
id
}
/'
)
from
django.test
import
TestCase
from
django.urls
import
resolve
from
django.http
import
HttpRequest
from
.views
import
home_page
from
.models
import
Item
,
List
from
django.template.loader
import
render_to_string
# Create your tests here.
class
HomePageTest
(
TestCase
):
def
test_uses_home_template
(
self
):
response
=
self
.
client
.
get
(
'/'
)
self
.
assertTemplateUsed
(
response
,
'app/home.html'
)
def
test_can_save_a_POST_request
(
self
):
response
=
self
.
client
.
post
(
'/lists/new'
,
data
=
{
'item_text'
:
'A new list item'
})
self
.
assertEqual
(
Item
.
objects
.
count
(),
1
)
new_item
=
Item
.
objects
.
first
()
self
.
assertEqual
(
new_item
.
text
,
'A new list item'
)
# def test_redirects_after_POST(self):
# response = self.client.post('/lists/new', data={'item_text': 'A new list item'})
# self.assertRedirects(response, '/lists/the-only-list-in-the-world/')
# def test_if_item_smaller_than_5(self):
# response = self.client.get('/')
# self.assertIn('yey, waktunya libur', response.content.decode())
# def test_if_item_smaller_than_5(self):
# Item.objects.create(text='itemey 1')
# Item.objects.create(text='itemey 2')
# response = self.client.get('/')
# self.assertIn('sibuk tapi santai', response.content.decode())
# def test_if_item_more_than_5(self):
# Item.objects.create(text='itemey 1')
# Item.objects.create(text='itemey 2')
# Item.objects.create(text='itemey 3')
# Item.objects.create(text='itemey 4')
# Item.objects.create(text='itemey 5')
# Item.objects.create(text='itemey 6')
# response = self.client.get('/')
# self.assertIn('oh tidak', response.content.decode())
class
ListAndItemModelTest
(
TestCase
):
def
test_saving_and_retrieving_items
(
self
):
list_
=
List
()
list_
.
save
()
first_item
=
Item
()
first_item
.
text
=
'The first (ever) list item'
first_item
.
list
=
list_
first_item
.
save
()
second_item
=
Item
()
second_item
.
text
=
'Item the second'
second_item
.
list
=
list_
second_item
.
save
()
saved_list
=
List
.
objects
.
first
()
self
.
assertEqual
(
saved_list
,
list_
)
saved_items
=
Item
.
objects
.
all
()
self
.
assertEqual
(
saved_items
.
count
(),
2
)
first_saved_item
=
saved_items
[
0
]
second_saved_item
=
saved_items
[
1
]
self
.
assertEqual
(
first_saved_item
.
text
,
'The first (ever) list item'
)
self
.
assertEqual
(
first_saved_item
.
list
,
list_
)
self
.
assertEqual
(
second_saved_item
.
text
,
'Item the second'
)
self
.
assertEqual
(
second_saved_item
.
list
,
list_
)
class
ListViewTest
(
TestCase
):
def
test_uses_list_template
(
self
):
list_
=
List
.
objects
.
create
()
response
=
self
.
client
.
get
(
f
'/lists/
{
list_
.
id
}
/'
)
self
.
assertTemplateUsed
(
response
,
'app/list.html'
)
def
test_displays_only_items_for_that_list
(
self
):
correct_list
=
List
.
objects
.
create
()
Item
.
objects
.
create
(
text
=
'itemey 1'
,
list
=
correct_list
)
Item
.
objects
.
create
(
text
=
'itemey 2'
,
list
=
correct_list
)
other_list
=
List
.
objects
.
create
()
Item
.
objects
.
create
(
text
=
'other list item 1'
,
list
=
other_list
)
Item
.
objects
.
create
(
text
=
'other list item 2'
,
list
=
other_list
)
response
=
self
.
client
.
get
(
f
'/lists/
{
correct_list
.
id
}
/'
)
self
.
assertContains
(
response
,
'itemey 1'
)
self
.
assertContains
(
response
,
'itemey 2'
)
self
.
assertNotContains
(
response
,
'other list item 1'
)
self
.
assertNotContains
(
response
,
'other list item 2'
)
class
NewListTest
(
TestCase
):
def
test_can_save_a_POST_request
(
self
):
self
.
client
.
post
(
'/lists/new'
,
data
=
{
'item_text'
:
'A new list item'
})
self
.
assertEqual
(
Item
.
objects
.
count
(),
1
)
new_item
=
Item
.
objects
.
first
()
self
.
assertEqual
(
new_item
.
text
,
'A new list item'
)
def
test_redirects_after_POST
(
self
):
response
=
self
.
client
.
post
(
'/lists/new'
,
data
=
{
'item_text'
:
'A new list item'
})
new_list
=
List
.
objects
.
first
()
self
.
assertRedirects
(
response
,
f
'/lists/
{
new_list
.
id
}
/'
)
class
NewItemTest
(
TestCase
):
def
test_can_save_a_POST_request_to_an_existing_list
(
self
):
other_list
=
List
.
objects
.
create
()
correct_list
=
List
.
objects
.
create
()
self
.
client
.
post
(
f
'/lists/
{
correct_list
.
id
}
/add_item'
,
data
=
{
'item_text'
:
'A new item for an existing list'
}
)
self
.
assertEqual
(
Item
.
objects
.
count
(),
1
)
new_item
=
Item
.
objects
.
first
()
self
.
assertEqual
(
new_item
.
text
,
'A new item for an existing list'
)
self
.
assertEqual
(
new_item
.
list
,
correct_list
)
def
test_redirects_to_list_view
(
self
):
other_list
=
List
.
objects
.
create
()
correct_list
=
List
.
objects
.
create
()
response
=
self
.
client
.
post
(
f
'/lists/
{
correct_list
.
id
}
/add_item'
,
data
=
{
'item_text'
:
'A new item for an existing list'
}
)
self
.
assertRedirects
(
response
,
f
'/lists/
{
correct_list
.
id
}
/'
)
def
test_passes_correct_list_to_template
(
self
):
other_list
=
List
.
objects
.
create
()
correct_list
=
List
.
objects
.
create
()
response
=
self
.
client
.
get
(
f
'/lists/
{
correct_list
.
id
}
/'
)
self
.
assertEqual
(
response
.
context
[
'list'
],
correct_list
)
\ 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