Esempio n. 1
0
class UserAuthCodeTest(unittest.TestCase):

    def setUp(self):
        self.encoder = UserAuthCode('secret')
        self.user = UserFactory(is_active=False)

    def tearDown(self):
        self.encoder = None
        self.user.delete()
        self.user = None

    def test_user(self):
        self.assertIsNotNone(self.user.date_joined)
        self.assertTrue(self.user.date_joined >= self.user.last_login)

    def test_salt(self):
        salt = self.encoder.salt()
        self.assertEqual(8, len(salt))

    def test_auth_code(self):
        code = self.encoder.auth_code(self.user)
        self.assertIsNotNone(code)

    def test_complete_activation(self):
        code = self.encoder.auth_code(self.user)
        self.assertTrue(self.encoder.is_valid(self.user, code))

    def test_wrong_key(self):
        self.assertFalse(self.encoder.is_valid(self.user, 'aaa'))

    def test_already_activated(self):
        code = self.encoder.auth_code(self.user)
        self.user.last_login = timezone.now()
        self.user.save()
        self.assertFalse(self.encoder.is_valid(self.user, code))
Esempio n. 2
0
class TestMessage(unittest.TestCase):
    """
    Test messages
    """

    def setUp(self):
        self.user = UserFactory()
        self.region = RegionFactory()
        self.message = MessageFactory.build(georegion=self.region)

    def tearDown(self):
        self.user.delete()
        self.region.delete()
        self.message = None

    def test_message_unicode(self):
        self.assertEqual(self.message.title, "%s" % self.message)

    def test_message_save(self):
        self.message.save()
        self.assertIsNotNone(self.message.pk)
        self.message.delete()

    def test_message_remove(self):
        self.message.is_removed = True
        self.assertTrue(self.message.is_removed)

    def test_message_restore(self):
        self.message.is_removed = True
        self.assertTrue(self.message.is_removed)
        self.message.is_removed = False
        self.assertFalse(self.message.is_removed)
Esempio n. 3
0
 def test_knownuser_form(self):
     ''' Form for authenticated user contain initial data for some fields'''
     user = UserFactory(is_active=True)
     form = self.app.get(
         '/message/pomogite/dobavit',
         user=user.username).forms['mainForm']
     self.assertEqual(user.first_name, form['contact_first_name'].value)
     self.assertEqual(user.last_name, form['contact_last_name'].value)
     self.assertEqual(user.email, form['contact_mail'].value)
     self.assertEqual(user.profile.phones, form['contact_phone'].value)
     user.delete()
Esempio n. 4
0
class TestUserMessage(unittest.TestCase):
    def setUp(self):
        self.user = UserFactory()

    def tearDown(self):
        self.user.delete()
        self.user = None

    def test_user_message(self):
        msg = MessageFactory(user=self.user)
        self.assertIsNotNone(msg)
        self.assertEqual(self.user, msg.user)
Esempio n. 5
0
 def test_knownuser_message(self):
     ''' Authenticated user send message and this message must be
         linked to user profile'''
     before = Message.objects.count()
     user = UserFactory(is_active=True)
     form = self.app.get(
         '/message/pomogite/dobavit',
         user=user.username).forms['mainForm']
     form['title'] = 'Test message'
     form['message'] = "This is simple test message"
     form['georegion'] = self.region.pk
     form['address'] = 'Some address'
     form.submit()
     self.assertEqual(before + 1, Message.objects.count())
     msg = Message.objects.all().select_related().reverse()[0]
     self.assertEqual(msg.user, user)
     user.delete()
Esempio n. 6
0
class TestUserActivation(unittest.TestCase):
    def setUp(self):
        encoder = UserAuthCode(settings.SECRET_KEY)
        self.user = UserFactory(is_active=False)
        self.code = encoder.auth_code(self.user)

    def tearDown(self):
        self.user.delete()
        self.code = None

    def test_user_activation(self):
        self.assertTrue(activate_user(self.user, self.code))
        self.assertTrue(self.user.is_active)

    def test_wrong_code(self):
        self.assertFalse(activate_user(self.user, 'self.code'))
        self.assertFalse(self.user.is_active)
Esempio n. 7
0
class IonTest(unittest.TestCase):
    '''Authorization tests'''

    def setUp(self):
        self.ion = IonAuth()
        self.user = UserFactory.build(
            is_active=True
        )
        self.user.password = self.ion.password_hash('123')
        self.active_user = UserFactory(is_active=True)
        self.inactive_user = UserFactory(is_active=False)

    def tearDown(self):
        self.active_user.delete()
        self.inactive_user.delete()
        self.user = None

    def test_ion_auth(self):
        self.assertEquals(40, len(self.user.password))

    def test_password_rewrite(self):
        '''
        If user enters correct ion password, backend will
        rehash password to django-specific password hash.
        '''
        self.user.save()
        u2 = self.ion.authenticate(username=self.user.email, password='******')
        self.assertIsNotNone(u2)
        self.assertFalse(u2.is_anonymous())
        self.assertNotEqual(self.user.password, u2.password)
        self.user.delete()

    def test_inactive_user(self):
        u2 = self.ion.authenticate(
            username=self.inactive_user.email, password='******')
        self.assertIsNone(u2)

    def test_unexists_user(self):
        u2 = self.ion.authenticate(username="******", password='******')
        self.assertIsNone(u2)

    def test_wrong_password(self):
        u2 = self.ion.authenticate(
            username=self.active_user.email, password='******')
        self.assertIsNone(u2)
Esempio n. 8
0
class TestMessageCleanData(unittest.TestCase):
    """
    Test message cleaf functionality.
    """

    def setUp(self):
        self.user = UserFactory()
        self.region = RegionFactory()
        self.message = MessageFactory.build(georegion=self.region)

    def tearDown(self):
        self.message = None
        self.region.delete()
        self.user.delete()

    def catch_wrong_data(self):
        """ Common test missed data"""
        with self.assertRaises(ValidationError):
            self.message.save()
            self.message.delete()

    def test_no_message_contacts(self):
        self.message.contact_phone = None
        self.message.contact_mail = None
        self.catch_wrong_data()

    def test_invalid_email(self):
        self.message.contact_mail = "notamail"
        self.catch_wrong_data()

    def test_phone_contact(self):
        self.message.contact_mail = ""
        self.message.save()
        self.assertIsNotNone(self.message.pk)
        self.message.delete()

    def test_email_contact(self):
        self.message.contact_phone = ""
        self.message.save()
        self.assertIsNotNone(self.message.pk)
        self.message.delete()
Esempio n. 9
0
class TestSimpleRequestForm(unittest.TestCase):
    def setUp(self):
        self.form = SimpleRequestForm()
        self.user = UserFactory()
        self.region = RegionFactory()
        self.data = {
            "title": lorem_ipsum(words_count=3),
            "message": lorem_ipsum(),
            "messageType": MessageType.TYPE_REQUEST,
            "contact_first_name": self.user.first_name,
            "contact_last_name": self.user.last_name,
            "contact_mail": self.user.email,
            "georegion": self.region.pk,
            "location_0": 0.0,
            "location_1": 0.0,
            "address": lorem_ipsum(words_count=4),
        }

    def tearDown(self):
        self.region.delete()
        self.region = None
        self.form = None
        self.user.delete()

    def test_form_type(self):
        self.assertEqual(1, self.form.fields["messageType"].initial)

    def test_send_data(self):
        form = SimpleRequestForm(self.data)
        self.assertTrue(form.is_bound)
        self.assertTrue(form.is_valid(), form.errors)
        msg = form.save(commit=True)
        self.assertIsNotNone(msg)
        self.assertIsNotNone(msg.pk)
        self.assertEqual(1, msg.status)
        self.assertEqual(1, msg.messageType)
        msg.delete()
Esempio n. 10
0
class TestForgotPasswordForm(unittest.TestCase):
    '''
    First step reset password functionality - validate email 
    '''

    def setUp(self):
        self.user = UserFactory()

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

    def test_reset_password(self):
        data = {'email': self.user.email}
        form = ForgotPasswordForm(data)
        self.assertTrue(form.is_bound)
        self.assertTrue(form.is_valid())

    def test_unknown_email(self):
        data = {'email': '*****@*****.**',}
        form = ForgotPasswordForm(data)
        self.assertTrue(form.is_bound)
        self.assertFalse(form.is_valid())
        self.assertEqual([_(u'This email isn\'t registered'),],
            form['email'].errors)
Esempio n. 11
0
class SimpleRegistrationFormTest(unittest.TestCase):
    ''' Registration form test'''

    def setUp(self):
        self.data = {
            'first_name': 'test',
            'last_name': 'user',
            'email': '*****@*****.**',
            'password1': '123',
            'password2': '123'
        }
        self.user = UserFactory()

    def tearDown(self):
        self.data = None
        self.user.delete()
        Profile.objects.all().delete()

    def test_user_creation(self):
        form = SimpleRegistrationForm(self.data)
        self.assertTrue(form.is_bound)
        self.assertTrue(form.is_valid())

    def test_lost_firstname(self):
        self.data['first_name'] = None
        form = SimpleRegistrationForm(self.data)
        self.assertTrue(form.is_bound)
        self.assertFalse(form.is_valid())
        self.assertEqual([_(u'This field is required.'), ],
                         form['first_name'].errors)

    def test_empty_firstname(self):
        self.data['first_name'] = '   '
        form = SimpleRegistrationForm(self.data)
        self.assertTrue(form.is_bound)
        self.assertFalse(form.is_valid())
        self.assertEqual([_(u'You must provide a first name!'), ],
                         form['first_name'].errors)

    def test_lost_lastname(self):
        self.data['last_name'] = None
        form = SimpleRegistrationForm(self.data)
        self.assertTrue(form.is_bound)
        self.assertFalse(form.is_valid())
        self.assertEqual([_(u'This field is required.'), ],
                         form['last_name'].errors)

    def test_empty_lastname(self):
        self.data['last_name'] = '   '
        form = SimpleRegistrationForm(self.data)
        self.assertTrue(form.is_bound)
        self.assertFalse(form.is_valid())
        self.assertEqual([_(u'You must provide a last name!'), ],
                         form['last_name'].errors)

    def test_existing_email(self):
        self.data['email'] = self.user.email
        form = SimpleRegistrationForm(self.data)
        self.assertTrue(form.is_bound)
        self.assertFalse(form.is_valid())
        self.assertEqual([_(u'This email already registered'), ],
                         form['email'].errors)

    def test_passwords_diff(self):
        self.data['password1'] = 'qwe'
        form = SimpleRegistrationForm(self.data)
        self.assertTrue(form.is_bound)
        self.assertFalse(form.is_valid())
        self.assertEqual([_(u'The password fields did not match'), ],
                         form.errors['__all__'])