Exemple #1
0
class ActivationTest(TestCase):
    def setUp(self):
        self.person = Person(
                    first_name = "Jay",
                    last_name="Hacker",
                    email="*****@*****.**",
                    membership_status="Starving",
                    )
        self.person.save()

    def tearDown(self):
        self.person.delete()

    def get_token(self):
        return Token.objects.get(person = self.person)

    def test_activation_form(self):

        activation_data = {}
        activation_data['ps1_email'] = "*****@*****.**"
        activation_form = activate_account_form(data = activation_data)
        self.assertTrue(activation_form.is_valid())
        activation_form.save(use_https = False, domain = "example.com")
        
        #an email gets sent out. since I don't know how to retrieve it, I am going to cheat
        self.token = Token.objects.get(person = self.person);
        self.assertIsNotNone(self.token)

    def test_register_form(self):
        """
        This tests most of the zoho activation path.
        """
        activation_data = {}
        activation_data['ps1_email'] = "*****@*****.**"
        activation_form = activate_account_form(data = activation_data)
        self.assertTrue(activation_form.is_valid())
        activation_form.save(use_https = False, domain = "example.com")
        
        #an email gets sent out. since I don't know how to retrieve it, I am going to cheat
        self.token = Token.objects.get(person = self.person);
        self.assertIsNotNone(self.token)
        register_data = {}
        register_data['token'] = self.token.token
        register_data['preferred_username'] = '******'
        register_data['first_name'] = 'Jay'
        register_data['last_name'] = 'Hacker'
        register_data['preferred_email'] = '*****@*****.**'
        register_form = account_register_form(data=register_data)
        self.assertTrue(register_form.is_valid())
        user = register_form.save()
        self.assertIsNotNone(user)
        
        with self.assertRaises(Token.DoesNotExist):
            Token.objects.get(person = self.person)
        
        PS1User.objects.delete_user(user)

    def test_activate(self):
        c = Client()

        response = c.get('/signup/activate/')
        self.assertEqual(response.status_code, 200)

        response = c.post('/signup/activate/', {'ps1_email': '*****@*****.**'}, follow=True)
        self.assertEqual(response.status_code, 200)

        # "read" email
        token = self.get_token()
        activation_url = '/signup/activate/confirm/{}'.format(token.token)
        response = c.get(activation_url)
        self.assertEqual(response.status_code, 200)
        
        post_data = {
            'preferred_username': '******',
            'first_name': 'Jay',
            'last_name': 'Hacker',
            'preferred_email': '*****@*****.**',
            'token': token.token,
        }
        response = c.post(activation_url, post_data, follow=True)
        self.assertEqual(response.status_code, 200)

        jay = Person.objects.get(pk=self.person.pk)
        self.assertIsNotNone(jay.user)
        PS1User.objects.delete_user(jay.user)