def setUp(self):
        date_time = datetime.datetime(2014, 9, 17, 16, 0, 49, 807000)
        phone_number = "256775019449"
        self.district = Location(
            **dict(name='Kampala', parent=None, type='district')).save()
        self.village = Location(**dict(
            name='Bukoto', parent=self.district, type='village')).save()
        self.mobile_user = UserProfile(**dict(name='timothy',
                                              phone=phone_number,
                                              location=self.village,
                                              email=None)).save()

        self.poll_attr = dict(name="Disaster",
                              question="How many disasters are in your area?",
                              keyword="some_word",
                              target_locations=[str(self.village.id)])
        self.poll = Poll(**self.poll_attr).save()

        self.text_format = "NECOCPoll %s there are 4 or 5"
        text = self.text_format % self.poll_attr['keyword']

        self.poll_response = dict(phone_no=phone_number,
                                  text=text,
                                  received_at=date_time,
                                  relayer_id=234,
                                  run_id=23243)
        self.serialized_data = dict(phone=phone_number,
                                    time=date_time,
                                    relayer=234,
                                    run=23243,
                                    text=text)
Exemple #2
0
 def test_reset_password_for_non_web_user_raises_404(self):
     attr = self.mobile_user_attr.copy()
     del attr['user']
     profile = UserProfile(**attr).save()
     response = self.client.post(self.API_ENDPOINT + str(profile.id) +
                                 '/password_reset/')
     self.assertEqual(404, response.status_code)
     self.assertEqual({"detail": "Not found"}, response.data)
Exemple #3
0
 def test_cant_post_reset_password_without_manage_user_permission(self):
     profile = UserProfile(**self.mobile_user_attr).save()
     self.assert_permission_required_for_get(self.API_ENDPOINT +
                                             str(profile.id) +
                                             '/password_reset/')
     self.assert_permission_required_for_post(self.API_ENDPOINT +
                                              str(profile.id) +
                                              '/password_reset/')
Exemple #4
0
 def test_reseting_password_sends_email(self, mock_send_email):
     profile = UserProfile(**self.mobile_user_attr).save()
     response = self.client.post(self.API_ENDPOINT + str(profile.id) +
                                 '/password_reset/')
     self.assertEqual(200, response.status_code)
     mock_send_email.assert_called_with('NECOC Password Reset', mock.ANY,
                                        settings.DEFAULT_FROM_EMAIL,
                                        [profile.email])
Exemple #5
0
 def test_should_reset_password_of_user(self):
     profile = UserProfile(**self.mobile_user_attr).save()
     response = self.client.post(self.API_ENDPOINT + str(profile.id) +
                                 '/password_reset/')
     self.assertEqual(200, response.status_code)
     self.assertEqual({}, response.data)
     self.assertFalse(
         (User.objects(username=self.user.username)).first().check_password(
             self.initial_password))
Exemple #6
0
    def test_user_must_be_logged_in_to_change_their_password(self):
        profile = UserProfile(**(self.mobile_user_attr.copy())).save()

        self.client.logout()
        response = self.client.post(
            self.API_ENDPOINT + str(profile.id) + '/password/',
            self.password_data)

        users = User.objects(username=self.user.username)
        self.assertEqual(403, response.status_code)
        self.assertTrue(users.first().check_password(
            self.password_data['old_password']))
Exemple #7
0
    def test_user_can_only_change_their_password(self):
        attr = self.mobile_user_attr.copy()
        del attr['user']
        profile = UserProfile(**attr).save()
        response = self.client.post(
            self.API_ENDPOINT + str(profile.id) + '/password/',
            self.password_data)
        users = User.objects(username=self.user.username)

        self.assertEqual(403, response.status_code)
        self.assertTrue(users.first().check_password(
            self.password_data['old_password']))
Exemple #8
0
    def setUp(self):
        date_time = datetime.datetime(2014, 9, 17, 16, 0, 49, 807000)
        phone_number = "256775019449"

        self.district = Location(
            **dict(name='Kampala', parent=None, type='district')).save()
        self.village = Location(**dict(
            name='Bukoto', parent=self.district, type='village')).save()
        self.mobile_user = UserProfile(**dict(name='timothy',
                                              phone=phone_number,
                                              location=self.village,
                                              email=None)).save()

        self.message = dict(phone_no=phone_number,
                            text="NECOC There is a fire",
                            received_at=date_time,
                            relayer_id=234,
                            run_id=23243)
Exemple #9
0
    def test_should_update_password_of_user(self):
        profile = UserProfile(**self.mobile_user_attr).save()
        response = self.client.post(
            self.API_ENDPOINT + str(profile.id) + '/password/',
            self.password_data)

        profiles = UserProfile.objects()
        users = User.objects(username=self.user.username)

        self.assertEqual(200, response.status_code)
        self.assertEqual({}, response.data)
        self.assertEqual(1, profiles.count())
        self.assertEqual(1, users.count())
        self.assertTrue(users.first().check_password(
            self.password_data['new_password']))

        response = self.client.login(
            username=self.user.username,
            password=self.password_data['new_password'])
        self.assertTrue(response)
Exemple #10
0
 def setUp(self):
     self.date_time = datetime.datetime(2014, 9, 17, 16, 0, 49, 807000)
     phone_number = "+256775019449"
     self.district = Location(
         **dict(name='Kampala', parent=None, type='district')).save()
     self.village = Location(**dict(
         name='Bukoto', parent=self.district, type='village')).save()
     self.mobile_user = UserProfile(**dict(name='timothy',
                                           phone=phone_number,
                                           location=self.village,
                                           email=None)).save()
     text = "NECOC.%s. There is a fire" % self.village.name
     self.message = dict(phone_no=phone_number,
                         text=text,
                         received_at=self.date_time,
                         relayer_id=234,
                         run_id=23243)
     self.serialized_data = dict(phone=phone_number,
                                 time=self.date_time,
                                 relayer=234,
                                 run=23243,
                                 text=text)
     AdminSetting(**dict(name='enable_volunteer_profiles')).save()