Przeglądaj źródła

Add functional tests for adding reviews

master
David Winterbottom 13 lat temu
rodzic
commit
e65cfe1fd9

+ 1
- 1
oscar/templates/oscar/reviews/add_review.html Wyświetl plik

@@ -3,7 +3,7 @@
3 3
 
4 4
 {% block product_review %}
5 5
 <div id="addreview" class="review_add">
6
-    <form method="post" action="./#addreview" class="form-horizontal" >
6
+    <form id="add_review_form" method="post" action="./#addreview" class="form-horizontal" >
7 7
 	<fieldset>
8 8
 		<legend>{% trans "Leave a product review" %}</legend>
9 9
 	        {% csrf_token %}

+ 0
- 0
tests/functional/catalogue/__init__.py Wyświetl plik


+ 37
- 0
tests/functional/catalogue/review_tests.py Wyświetl plik

@@ -0,0 +1,37 @@
1
+from django_dynamic_fixture import G
2
+from django.contrib.auth.models import User
3
+
4
+from oscar.test import WebTestCase
5
+from oscar.test.helpers import create_product
6
+
7
+
8
+class TestACustomer(WebTestCase):
9
+
10
+    def setUp(self):
11
+        self.product = create_product()
12
+
13
+    def test_can_add_a_review_when_anonymous(self):
14
+        detail_page = self.app.get(self.product.get_absolute_url())
15
+        add_review_page = detail_page.click('Write a review')
16
+        form = add_review_page.forms['add_review_form']
17
+        form['title'] = 'This is great!'
18
+        form['score'] = 5
19
+        form['body'] = 'Loving it, loving it, loving it'
20
+        form['name'] = 'John Doe'
21
+        form['email'] = 'john@example.com'
22
+        form.submit()
23
+
24
+        self.assertEqual(1, self.product.reviews.all().count())
25
+
26
+    def test_can_add_a_review_when_signed_in(self):
27
+        user = G(User)
28
+        detail_page = self.app.get(self.product.get_absolute_url(),
29
+                                   user=user)
30
+        add_review_page = detail_page.click('Write a review')
31
+        form = add_review_page.forms['add_review_form']
32
+        form['title'] = 'This is great!'
33
+        form['score'] = 5
34
+        form['body'] = 'Loving it, loving it, loving it'
35
+        form.submit()
36
+
37
+        self.assertEqual(1, self.product.reviews.all().count())

+ 0
- 33
tests/unit/review_tests.py Wyświetl plik

@@ -43,36 +43,3 @@ class TopLevelProductReviewVoteTests(ProductReviewTests):
43 43
         self.assertRaises(IntegrityError, Vote.objects.create, review=self.review, delta=-1, user=self.user)
44 44
 
45 45
 
46
-class SingleProductReviewViewTest(ProductReviewTests, TestCase):
47
-
48
-    def setUp(self):
49
-        self.client = Client()
50
-        super(SingleProductReviewViewTest, self).setUp()
51
-        self.kwargs = {
52
-                'product_slug': self.product.slug,
53
-                'pk': str(self.product.id)}
54
-        
55
-    def test_each_product_has_review(self):
56
-        url = reverse('catalogue:detail', kwargs=self.kwargs)
57
-        response = self.client.get(url)
58
-        self.assertEquals(200, response.status_code)
59
-    
60
-    def test_user_can_add_product_review(self):
61
-        kwargs = {
62
-                'product_slug': self.product.slug,
63
-                'product_pk': str(self.product.id)}
64
-        url = reverse('catalogue:reviews-add', kwargs=kwargs)
65
-        self.client.login(username='testuser', password='secret')
66
-        response = self.client.get(url)
67
-        self.assertEquals(200, response.status_code)
68
-
69
-        # check necessary review fields for logged in user
70
-        self.assertContains(response, 'title')
71
-        self.assertContains(response, 'score')
72
-
73
-        # check additional fields for anonymous user
74
-        self.client.login(username=None)
75
-        response = self.client.get(url)
76
-        self.assertContains(response, 'name')
77
-        self.assertContains(response, 'email')
78
-

Ładowanie…
Anuluj
Zapisz