def METHOD_NAME(self):
    # Fetch the registration page
    response = self.client.get(reverse('core:user:registration'))
    self.assertEqual(response.status_code, 200)
    # Fill in the registration form
    registration_data = {
        'username': 'myusername',
        'password1': 'quai8fai7Zae',
        'password2': 'quai8fai7Zae',
        'email': 'not an email',
        'g-recaptcha-response': 'PASSED',
    }
    count_before = User.objects.count()
    # Wrong email
    response = self.client.post(reverse('core:user:registration'), registration_data)
    self.assertFalse(response.context['form'].is_valid())
    self.user_logout()
    # Correct email
    registration_data['email'] = 'my.email@example.com'
    response = self.client.post(reverse('core:user:registration'), registration_data)
    count_after = User.objects.count()
    self.assertEqual(response.status_code, 302)
    self.assertEqual(count_before + 1, count_after)
    self.user_logout()
    # Username already exists
    response = self.client.post(reverse('core:user:registration'), registration_data)
    count_after = User.objects.count()
    self.assertFalse(response.context['form'].is_valid())
    self.assertEqual(response.status_code, 200)
    self.assertEqual(count_before + 1, count_after)
    # Email already exists
    registration_data['username'] = 'my.other.username'
    response = self.client.post(reverse('core:user:registration'), registration_data)
    count_after = User.objects.count()
    self.assertFalse(response.context['form'].is_valid())
    self.assertEqual(response.status_code, 200)
    self.assertEqual(count_before + 1, count_after)
    # Password too short
    registration_data['password1'] = 'abc123'
    response = self.client.post(reverse('core:user:registration'), registration_data)
    self.assertFalse(response.context['form'].is_valid())
    self.user_logout()
    # Password is "password" (commonly used)
    registration_data['password1'] = 'password'
    response = self.client.post(reverse('core:user:registration'), registration_data)
    self.assertFalse(response.context['form'].is_valid())
    self.user_logout()
    # Password is entirely numeric
    registration_data['password1'] = '123456789'
    response = self.client.post(reverse('core:user:registration'), registration_data)
    self.assertFalse(response.context['form'].is_valid())
    self.user_logout()
    # Passwords don't match
    registration_data['password2'] = 'quai8fai7Zaeq'
    response = self.client.post(reverse('core:user:registration'), registration_data)
    self.assertFalse(response.context['form'].is_valid())
    self.user_logout()
    # First password is missing
    registration_data['password1'] = ""
    response = self.client.post(reverse('core:user:registration'), registration_data)
    self.assertFalse(response.context['form'].is_valid())
    self.user_logout()
    # Second password is missing
    registration_data['password2'] = ""
    response = self.client.post(reverse('core:user:registration'), registration_data)
    self.assertFalse(response.context['form'].is_valid())
    self.user_logout()
    # Username is too long
    long_user = (
        "my_username_is_"
        "wayyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"
        "_toooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo"
        "_loooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"
    )
    registration_data['username'] = long_user
    response = self.client.post(reverse('core:user:registration'), registration_data)
    self.assertFalse(response.context['form'].is_valid())
    self.user_logout()
    # Username contains invalid symbol
    registration_data['username'] = "username!"
    response = self.client.post(reverse('core:user:registration'), registration_data)
    self.assertFalse(response.context['form'].is_valid())
    self.user_logout()
    # Username is missing
    registration_data['username'] = ""
    response = self.client.post(reverse('core:user:registration'), registration_data)
    self.assertFalse(response.context['form'].is_valid())
    self.user_logout()