def register(request):
    if  "application/json" in request.META.get("CONTENT_TYPE"):
        data = json.loads(request.body)
    else:
        data = request.POST
    serialized = UserSerializer(data=data)
    if serialized.is_valid():
        user_data = utils.get_user_data(data)
        utils.create_inactive_user(request, **user_data)
        return Response(utils.USER_CREATED_RESPONSE_DATA,
                        status=status.HTTP_201_CREATED)
    else:
        return Response(serialized._errors, status=status.HTTP_400_BAD_REQUEST)
Example #2
0
    def test_activate_user(self):
        user = utils.create_inactive_user(**VALID_DATA)

        user = utils.activate_user(
            user.api_registration_profile.activation_key)

        self.assertTrue(user.is_active)
Example #3
0
def register(request):
    """
    Example valid JSON:
    {"username": "******", "email": "*****@*****.**", "password": "******", "restaurant": "My Pub"}
    """
    serialized = UserSerializer(data=request.data)
    if serialized.is_valid():
        #default code: create new_user
        user_data = utils.get_user_data(request.data)
        new_user = utils.create_inactive_user(**user_data)

        #Crear el restaurante del nuevo usuario:
        new_owner = Owner(user=new_user, name=new_user.username)
        new_owner.save()
        print("Owner " + new_owner.name + " created. [OK]")
        restaurant_name = request.data.pop('restaurant')
        new_restaurant = Restaurant(owner=new_owner, name=restaurant_name)
        new_restaurant.save()
        print("Restaurant " + new_restaurant.name + " created. [OK]")

        #Crear el staff
        staff_name = new_user.username
        new_staff = Staff(user=new_user,
                          first_name=staff_name,
                          restaurant=new_restaurant)  #Manager por defecto
        new_staff.save()
        print("Staff " + new_staff.first_name + " created. [OK]")

        return Response(utils.USER_CREATED_RESPONSE_DATA,
                        status=status.HTTP_201_CREATED)
    else:
        return Response(serialized._errors, status=status.HTTP_409_CONFLICT)
    def test_activate__without_ACTIVATE_REDIRECT_URL(self):
        user = utils.create_inactive_user(**VALID_DATA)
        request = MockHttpRequest()

        self.assertRaises(
            ImproperlyConfigured,
            activate,
            request,
            activation_key=user.registrationprofile.activation_key)
    def test_activate__without_ACTIVATE_REDIRECT_URL(self):
        user = utils.create_inactive_user(**VALID_DATA)
        request = MockHttpRequest()

        self.assertRaises(
            ImproperlyConfigured,
            activate,
            request,
            activation_key=user.api_registration_profile.activation_key)
    def test_activate(self):
        user = utils.create_inactive_user(**VALID_DATA)
        request = MockHttpRequest()

        response = activate(
            request, activation_key=user.registrationprofile.activation_key)
        user = get_user_model().objects.get(pk=user.pk)

        self.assertTrue(user.is_active)
        self.assertEqual(user.registrationprofile.activation_key,
                         RegistrationProfile.ACTIVATED)
        self.assertEqual(response.status_code, status.HTTP_302_FOUND)
        self.assertEqual(
            response['location'],
            utils.get_settings('REGISTRATION_API_ACTIVATION_SUCCESS_URL'))
    def test_activate(self):
        user = utils.create_inactive_user(**VALID_DATA)
        request = MockHttpRequest()

        response = activate(
            request,
            activation_key=user.api_registration_profile.activation_key)
        user = get_user_model().objects.get(pk=user.pk)

        self.assertTrue(user.is_active)
        self.assertEqual(user.api_registration_profile.activation_key,
                         RegistrationProfile.ACTIVATED)
        self.assertEqual(response.status_code,
                         status.HTTP_302_FOUND)
        self.assertEqual(response['location'],
                         utils.get_settings('REGISTRATION_API_ACTIVATION_SUCCESS_URL'))
    def test_create_inactive_user(self, mock_create_profile, mock_send_activation_email):
        site = Site.objects.get()
        user_model = get_user_model()
        with mock.patch.object(user_model.objects, 'create_user') as mock_create_user:
            mock_create_user.return_value = get_user_model()(**VALID_DATA)
            user = utils.create_inactive_user(**VALID_DATA)

            if hasattr(user, 'username'):
                mock_create_user.assert_called_with(VALID_DATA['username'],
                                                    VALID_DATA['email'],
                                                    VALID_DATA['password'])
            else:
                mock_create_user.assert_called_with(VALID_DATA['email'],
                                                    VALID_DATA['password'])
            mock_create_profile.assert_called_with(user)
            self.assertFalse(user.is_active)
            self.assertTrue(user.pk)
            mock_send_activation_email.assert_called_with(user, site)
    def test_create_inactive_user(self, mock_create_profile,
                                  mock_send_activation_email):
        site = Site.objects.get()
        user_model = get_user_model()
        with mock.patch.object(user_model.objects,
                               'create_user') as mock_create_user:
            mock_create_user.return_value = get_user_model()(**VALID_DATA)
            user = utils.create_inactive_user(**VALID_DATA)

            if hasattr(user, 'username'):
                mock_create_user.assert_called_with(VALID_DATA['username'],
                                                    VALID_DATA['email'],
                                                    VALID_DATA['password'])
            else:
                mock_create_user.assert_called_with(VALID_DATA['email'],
                                                    VALID_DATA['password'])
            mock_create_profile.assert_called_with(user)
            self.assertFalse(user.is_active)
            self.assertTrue(user.pk)
            mock_send_activation_email.assert_called_with(user, site)
    def test_activate_user(self):
        user = utils.create_inactive_user(**VALID_DATA)

        user = utils.activate_user(user.api_registration_profile.activation_key)

        self.assertTrue(user.is_active)