diff --git a/app_homepage/tests/__pycache__/__init__.cpython-37.pyc b/app_homepage/tests/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9deb522eeccc60f96bb0096094b6684200b86e89 Binary files /dev/null and b/app_homepage/tests/__pycache__/__init__.cpython-37.pyc differ diff --git a/app_homepage/tests/__pycache__/test_all.cpython-37.pyc b/app_homepage/tests/__pycache__/test_all.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3e30123c9d4cd015ce4b315dc788bb554d468d42 Binary files /dev/null and b/app_homepage/tests/__pycache__/test_all.cpython-37.pyc differ diff --git a/app_homepage/tests/__pycache__/test_models.cpython-37.pyc b/app_homepage/tests/__pycache__/test_models.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b724c5f438f8a4cc8839531234cfba4de3f14631 Binary files /dev/null and b/app_homepage/tests/__pycache__/test_models.cpython-37.pyc differ diff --git a/app_homepage/tests/__pycache__/test_views.cpython-37.pyc b/app_homepage/tests/__pycache__/test_views.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..792505a140e7f9ef01f2f6690d11991e9a7e885a Binary files /dev/null and b/app_homepage/tests/__pycache__/test_views.cpython-37.pyc differ diff --git a/app_homepage/tests/test_all.py b/app_homepage/tests/test_all.py index f9130be234944b58d086964cdba922ad75bd54dc..882a1a39d18e276763b0c172527b39725048dac8 100644 --- a/app_homepage/tests/test_all.py +++ b/app_homepage/tests/test_all.py @@ -1,143 +1,143 @@ -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 app_homepage.views import home_page +from app_homepage.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 diff --git a/app_homepage/tests/test_models.py b/app_homepage/tests/test_models.py new file mode 100644 index 0000000000000000000000000000000000000000..49dc296ec185388443fd21d5a775b49b5508ceba --- /dev/null +++ b/app_homepage/tests/test_models.py @@ -0,0 +1,33 @@ +from django.test import TestCase +from app_homepage.models import Item, List + +# Create your tests here. +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_) + diff --git a/app_homepage/tests/test_views.py b/app_homepage/tests/test_views.py new file mode 100644 index 0000000000000000000000000000000000000000..8edde1182159654b084c249705773d95008e85ff --- /dev/null +++ b/app_homepage/tests/test_views.py @@ -0,0 +1,114 @@ +from django.test import TestCase +from django.urls import resolve +from django.http import HttpRequest +from app_homepage.views import home_page +from app_homepage.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 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