You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

51 lines
1.8 KiB

from django.contrib.auth.models import User
from hc.api.models import Check
from hc.payments.models import Subscription
from hc.test import BaseTestCase
from mock import patch
class CloseAccountTestCase(BaseTestCase):
@patch("hc.payments.models.Subscription.cancel")
def test_it_works(self, mock_cancel):
Check.objects.create(project=self.project, tags="foo a-B_1 baz@")
Subscription.objects.create(user=self.alice, subscription_id="123")
self.client.login(username="[email protected]", password="password")
r = self.client.post("/accounts/close/")
self.assertEqual(r.status_code, 302)
# Alice should be gone
alices = User.objects.filter(username="alice")
self.assertFalse(alices.exists())
# Bob's current team should now be None
self.bobs_profile.refresh_from_db()
self.assertIsNone(self.bobs_profile.current_project)
# Check should be gone
self.assertFalse(Check.objects.exists())
# Subscription should have been canceled
self.assertTrue(mock_cancel.called)
# Subscription should be gone
self.assertFalse(Subscription.objects.exists())
def test_partner_removal_works(self):
self.client.login(username="[email protected]", password="password")
r = self.client.post("/accounts/close/")
self.assertEqual(r.status_code, 302)
# Alice should be still present
self.alice.refresh_from_db()
self.profile.refresh_from_db()
# Bob should be gone
bobs = User.objects.filter(username="bob")
self.assertFalse(bobs.exists())
def test_it_rejects_get(self):
self.client.login(username="[email protected]", password="password")
r = self.client.get("/accounts/close/")
self.assertEqual(r.status_code, 405)