From c3c591aeaa22cdfee2bda1bf430cf792707cc63e Mon Sep 17 00:00:00 2001 From: Bagas <priambudibagaskara@gmail.com> Date: Sun, 22 Dec 2019 20:24:50 +0700 Subject: [PATCH] finish creating delete featur --- .coverage | 2 +- functional_tests/test_simple_list_creation.py | 5 +++++ lists/templates/index.html | 10 +++++++--- lists/tests/test_views.py | 10 ++++++++-- lists/views.py | 14 ++++++++++---- 5 files changed, 31 insertions(+), 10 deletions(-) diff --git a/.coverage b/.coverage index efc0c8f..28fd842 100644 --- a/.coverage +++ b/.coverage @@ -1 +1 @@ -!coverage.py: This is a private format, don't read it directly!{"arcs":{"/Users/priambudi/Documents/Kuliah/PMPL/1606895171-practice/lists/__init__.py":[[-1,1],[1,-1]],"/Users/priambudi/Documents/Kuliah/PMPL/1606895171-practice/accounts/__init__.py":[[-1,1],[1,-1]],"/Users/priambudi/Documents/Kuliah/PMPL/1606895171-practice/lists/models.py":[[-1,1],[1,3],[-3,3],[3,4],[4,-3],[3,-1]],"/Users/priambudi/Documents/Kuliah/PMPL/1606895171-practice/accounts/models.py":[[-1,1],[1,2],[2,3],[3,5],[5,7],[-7,7],[7,8],[8,10],[10,11],[11,12],[12,13],[13,-7],[7,15],[-15,15],[15,16],[16,17],[17,-15],[15,-1]],"/Users/priambudi/Documents/Kuliah/PMPL/1606895171-practice/accounts/authentication.py":[[-1,1],[1,3],[-3,3],[3,5],[5,15],[15,-3],[3,-1],[-5,6],[6,7],[7,9],[9,11],[11,12],[12,-5],[7,8],[8,-5],[8,9],[9,10],[10,-5],[-15,16],[16,17],[17,-15],[17,18],[18,19],[19,-15]],"/Users/priambudi/Documents/Kuliah/PMPL/1606895171-practice/accounts/views.py":[[-1,1],[1,2],[2,3],[3,4],[4,6],[6,7],[7,10],[10,30],[30,37],[37,-1],[-30,31],[31,32],[32,33],[33,34],[34,-30],[-10,11],[11,12],[12,13],[13,14],[14,16],[16,17],[17,18],[18,19],[19,20],[20,21],[21,23],[23,24],[24,25],[25,27],[27,-10],[32,34],[-37,38],[38,39],[39,-37]],"/Users/priambudi/Documents/Kuliah/PMPL/1606895171-practice/lists/views.py":[[-1,1],[1,2],[2,3],[3,6],[6,20],[20,-1],[-6,7],[7,8],[8,18],[-20,21],[21,22],[22,23],[23,28],[28,-20],[18,-6],[22,24],[24,25],[25,28],[24,27],[27,28],[8,9],[9,16],[16,17],[17,-6]]}} \ No newline at end of file +!coverage.py: This is a private format, don't read it directly!{"arcs":{"/Users/priambudi/Documents/Kuliah/PMPL/1606895171-practice/lists/__init__.py":[[-1,1],[1,-1]],"/Users/priambudi/Documents/Kuliah/PMPL/1606895171-practice/accounts/__init__.py":[[-1,1],[1,-1]],"/Users/priambudi/Documents/Kuliah/PMPL/1606895171-practice/lists/models.py":[[-1,1],[1,3],[-3,3],[3,4],[4,-3],[3,-1]],"/Users/priambudi/Documents/Kuliah/PMPL/1606895171-practice/accounts/models.py":[[-1,1],[1,2],[2,3],[3,5],[5,7],[-7,7],[7,8],[8,10],[10,11],[11,12],[12,13],[13,-7],[7,15],[-15,15],[15,16],[16,17],[17,-15],[15,-1]],"/Users/priambudi/Documents/Kuliah/PMPL/1606895171-practice/accounts/authentication.py":[[-1,1],[1,3],[-3,3],[3,5],[5,15],[15,-3],[3,-1],[-5,6],[6,7],[7,9],[9,11],[11,12],[12,-5],[7,8],[8,-5],[8,9],[9,10],[10,-5],[-15,16],[16,17],[17,-15],[17,18],[18,19],[19,-15]],"/Users/priambudi/Documents/Kuliah/PMPL/1606895171-practice/accounts/views.py":[[-1,1],[1,2],[2,3],[3,4],[4,6],[6,7],[7,10],[10,30],[30,37],[37,-1],[-30,31],[31,32],[32,33],[33,34],[34,-30],[-10,11],[11,12],[12,13],[13,14],[14,16],[16,17],[17,18],[18,19],[19,20],[20,21],[21,23],[23,24],[24,25],[25,27],[27,-10],[32,34],[-37,38],[38,39],[39,-37]],"/Users/priambudi/Documents/Kuliah/PMPL/1606895171-practice/lists/views.py":[[-1,1],[1,2],[2,3],[3,6],[6,26],[26,-1],[-6,7],[7,8],[8,24],[-26,27],[27,28],[28,29],[29,34],[34,-26],[24,-6],[28,30],[30,31],[31,34],[30,33],[33,34],[8,9],[9,11],[11,12],[12,19],[19,20],[20,-6],[11,22],[22,23],[23,-6],[12,13],[13,15],[15,16],[16,17],[17,-6]]}} \ No newline at end of file diff --git a/functional_tests/test_simple_list_creation.py b/functional_tests/test_simple_list_creation.py index f435100..8d95879 100644 --- a/functional_tests/test_simple_list_creation.py +++ b/functional_tests/test_simple_list_creation.py @@ -67,6 +67,11 @@ class NewVisitorTest(FunctionalTest): self.check_for_auto_comment('oh tidak') + deletebox = self.browser.find_element_by_id('id_delete_item') + deletebox.send_keys(Keys.ENTER) + + self.check_for_auto_comment("yey, waktunya berlibur") + def check_for_auto_comment(self, text): auto_comment = self.browser.find_element_by_id('comment').text self.assertEqual(text, auto_comment) \ No newline at end of file diff --git a/lists/templates/index.html b/lists/templates/index.html index c5571b3..f44fd46 100644 --- a/lists/templates/index.html +++ b/lists/templates/index.html @@ -42,9 +42,13 @@ <p id="comment">{{comment}}</p> <p class="has-error">{{error}}</p> <form method="POST"> - <input name="item_text" class="right" id="id_new_item" placeholder="Enter a to-do item" /> -{% csrf_token %} -</form> + <input name="item_text" class="right" id="id_new_item" placeholder="Enter a to-do item" /> + {% csrf_token %} + </form> + <form method="POST"> + <input type="submit" id="id_delete_item" name="delete_button" value="Delete List"/> + {% csrf_token %} + </form> <table id="id_list_table"> {% for item in items %} diff --git a/lists/tests/test_views.py b/lists/tests/test_views.py index 8a0774a..3239e8b 100644 --- a/lists/tests/test_views.py +++ b/lists/tests/test_views.py @@ -32,13 +32,19 @@ class HomePageUnitTest(TestCase): self.assertEqual(response.status_code, 302) self.assertEqual(response['location'], '/') - def test_can_do_DELETE(self): + def test_can_delete_list(self): response = self.client.post('/', data={'item_text': 'A new list item'}) self.assertEqual(Item.objects.count(), 1) - response = self.client.delete('/') + response = self.client.post('/', data={'delete_button': 'Delete List'}) self.assertEqual(Item.objects.count(), 0) + def test_redirects_after_delete_list(self): + response = self.client.post('/', data={'item_text': 'A new list item'}) + response = self.client.post('/') + self.assertEqual(response.status_code, 302) + self.assertEqual(response['location'], '/') + def test_only_saves_items_when_necessary(self): self.client.get('/') self.assertEqual(Item.objects.count(), 0) diff --git a/lists/views.py b/lists/views.py index 385132f..ebd8443 100644 --- a/lists/views.py +++ b/lists/views.py @@ -6,15 +6,21 @@ from lists.models import Item def home_page(request): items = Item.objects.all() if request.method == 'POST': - if len(request.POST['item_text']) == 0: - return render(request, 'index.html', + is_item_text_valid = request.POST.get('item_text', False) + # if is_item_text_valid != False: + if "item_text" in request.POST: + if len(is_item_text_valid) == 0: + return render(request, 'index.html', { 'items': items, 'comment': comment_text(len(items)), 'error': "You can't have an empty list item" }) - Item.objects.create(text=request.POST['item_text']) - return redirect('/') + Item.objects.create(text=request.POST['item_text']) + return redirect('/') + else: + items.all().delete() + return redirect('/') return render(request, 'index.html', {'items': items, 'comment': comment_text(len(items))}) def comment_text(length): -- GitLab