def test_user_registration_request_data_missing_terms_and_conditions_field(self):
        expected_result = messages.TERMS_AND_CONDITIONS_FIELD_IS_MISSING
        request_body = dict(
            name=user1["name"],
            username=user1["username"],
            password=user1["password"],
            email=user1["email"],
        )
        actual_result = validate_user_registration_request_data(request_body)

        self.assertDictEqual(expected_result, actual_result)
    def test_user_registration_request_data_missing_email_field(self):
        expected_result = messages.EMAIL_FIELD_IS_MISSING
        request_body = dict(
            name=user1["name"],
            username=user1["username"],
            password=user1["password"],
            terms_and_conditions_checked=user1["terms_and_conditions_checked"],
        )
        actual_result = validate_user_registration_request_data(request_body)

        self.assertDictEqual(expected_result, actual_result)
    def test_user_registration_request_data_with_terms_unchecked(self):
        expected_result = messages.TERMS_AND_CONDITIONS_ARE_NOT_CHECKED
        request_body = dict(
            name=user1["name"],
            username=user1["username"],
            password=user1["password"],
            email=user1["email"],
            terms_and_conditions_checked=False,
        )
        actual_result = validate_user_registration_request_data(request_body)

        self.assertDictEqual(expected_result, actual_result)
    def test_user_registration_valid_request_data(self):
        expected_result = {}
        request_body = dict(
            name=user1["name"],
            username=user1["username"],
            password=user1["password"],
            email=user1["email"],
            terms_and_conditions_checked=user1["terms_and_conditions_checked"],
        )
        actual_result = validate_user_registration_request_data(request_body)

        self.assertEqual(expected_result, actual_result)
    def test_user_registration_request_data_name_with_just_spaces_good_length(self):
        request_body = dict(
            name=" " * (NAME_MIN_LENGTH + 1),
            username=user1["username"],
            password=user1["password"],
            email=user1["email"],
            terms_and_conditions_checked=user1["terms_and_conditions_checked"],
        )

        expected_result = {
            "message": get_length_validation_error_message(
                "name", NAME_MIN_LENGTH, NAME_MAX_LENGTH
            )
        }
        actual_result = validate_user_registration_request_data(request_body)

        self.assertEqual(expected_result, actual_result)
    def test_user_registration_request_data_name_superior_to_limit(self):
        secure_random = SystemRandom()
        random_generated_name = "".join(
            secure_random.choice(ascii_lowercase) for x in range(NAME_MAX_LENGTH + 1)
        )
        request_body = dict(
            name=random_generated_name,
            username=user1["username"],
            password=user1["password"],
            email=user1["email"],
            terms_and_conditions_checked=user1["terms_and_conditions_checked"],
        )

        expected_result = {
            "message": get_length_validation_error_message(
                "name", NAME_MIN_LENGTH, NAME_MAX_LENGTH
            )
        }
        actual_result = validate_user_registration_request_data(request_body)

        self.assertEqual(expected_result, actual_result)