|
|
@@ -1,11 +1,8 @@
|
|
1
|
|
-import httplib
|
|
2
|
1
|
from mock import patch
|
|
3
|
2
|
from decimal import Decimal as D
|
|
4
|
3
|
|
|
5
|
4
|
from django.contrib.auth.models import User
|
|
6
|
5
|
from django.core.urlresolvers import reverse
|
|
7
|
|
-from django.test import TestCase
|
|
8
|
|
-from django.test.client import Client
|
|
9
|
6
|
|
|
10
|
7
|
from oscar.test.helpers import create_product, create_order
|
|
11
|
8
|
from oscar.test import ClientTestCase, WebTestCase
|
|
|
@@ -45,6 +42,31 @@ class TestASignedInUser(WebTestCase):
|
|
45
|
42
|
self.assertEqual('Barry', user.first_name)
|
|
46
|
43
|
self.assertEqual('Chuckle', user.last_name)
|
|
47
|
44
|
|
|
|
45
|
+ def test_cant_update_their_email_address_if_it_already_exists(self):
|
|
|
46
|
+ User.objects.create_user(username='testuser', email='new@example.com',
|
|
|
47
|
+ password="somerandompassword")
|
|
|
48
|
+ self.assertEquals(User.objects.count(), 2)
|
|
|
49
|
+
|
|
|
50
|
+ profile_form_page = self.app.get(reverse('customer:profile-update'),
|
|
|
51
|
+ user=self.user)
|
|
|
52
|
+ self.assertEqual(200, profile_form_page.status_code)
|
|
|
53
|
+ form = profile_form_page.forms['profile_form']
|
|
|
54
|
+ form['email'] = 'new@example.com'
|
|
|
55
|
+ form['first_name'] = 'Barry'
|
|
|
56
|
+ form['last_name'] = 'Chuckle'
|
|
|
57
|
+ response = form.submit()
|
|
|
58
|
+
|
|
|
59
|
+ user = User.objects.get(id=self.user.id)
|
|
|
60
|
+ self.assertEqual(self.email, user.email)
|
|
|
61
|
+
|
|
|
62
|
+ try:
|
|
|
63
|
+ User.objects.get(email='new@example.com')
|
|
|
64
|
+ except User.MultipleObjectsReturned:
|
|
|
65
|
+ self.fail("email for user changed to existing one")
|
|
|
66
|
+
|
|
|
67
|
+ self.assertContains(response,
|
|
|
68
|
+ 'A user with this email address already exists')
|
|
|
69
|
+
|
|
48
|
70
|
def test_can_change_their_password(self):
|
|
49
|
71
|
password_form_page = self.app.get(reverse('customer:change-password'),
|
|
50
|
72
|
user=self.user)
|