def test_swap_customer_on_login(self): """ Test that when logging in as a User with an existing Customer, that one is set on the request while the anonymous interim customer object is deleted. """ request = self.factory.post('/shop/auth/login/', follow=True) request.user = self.bart old_customer = Customer() old_customer.save() request.session = { 'session_key': 'bart_swap', SESSION_KEY: old_customer.pk, } request.customer = self.bart.customer user_logged_in.send(sender=self.bart.__class__, request=request, user=self.bart) try: Customer.objects.get_customer(request, force_unauth=True) except Customer.DoesNotExist: pass else: self.fail("""Unauthenticated customer should be deleted on login by a User with existing Customer""") self.assertEqual(request.customer, self.bart.customer)
def test_associate_customer_on_login(self): """ Test that when logging in as a user without existing customer account, the anonymous interim customer object is associated with the logged-in user. """ request = self.factory.post('/shop/auth/login/', follow=True) request.user = self.lisa customer = Customer() customer.save() request.session = { 'session_key': 'lisa_swap', SESSION_KEY: customer.pk, } request.customer = Customer.objects.get_customer(request) user_logged_in.send(sender=self.lisa.__class__, request=request, user=self.lisa) self.assertEqual(request.customer, customer) self.assertEqual(request.customer.user, self.lisa)